是否可以制作成对数组

Is it possible to make array of pairs

我是 c++ 的新手,所以我想问一下是否可以在 c++ 中创建一个 pair 数组,就像我们创建一个 pair 的向量一样。

int n;
 cin>>n;
 array < pair <int,int> >v[n];

我正在尝试制作这样的数组,但没有得到积极的结果。

您似乎在尝试动态分配 pair<int,int> 的数组。更喜欢 std::vector 来完成这样的任务:

#include<vector>

int n;

cin>>n;

std::vector<pair<int,int>> v(n);

关于您最初的问题,您可以创建 pair<int,int>s' 的数组,C 样式数组或 std::arrays,但是,您需要在编译时知道大小:

int n;

cin >> n;


//C-style arrays
pair<int,int> a[n]; //this may work on some compilers, but is non-standard behaviour

//std::arrays
#include<array>

std::array<pair<int,int>,n> a; //this will not compile at all, "n" must be known at compile-time

你可以 std::pair 但是如果你想要一个 c 风格的方式而不依赖于 std 你可以创建一个 struct

struct MyStruct
{
    int val1;
    int val2;
    char* description;
};

int main()
{
    MyStruct str[100];

}

或者对于现代使用 std::vector 和 std::pair 的方式,您可以在其他答案中找到示例

对于两个以上的值,您也可以使用 std::tuple 而不是 std::pair

std::map 根据您的使用情况也可能有用