我是C ++的新手,所以我想问问,是否有可能在c ++中创建一个成对数组,就像我们创建一个成对向量一样。
int n;
cin>>n;
array < pair <int,int> >v[n];
我正在尝试像这样制作数组,但没有得到积极的结果。
似乎您正在尝试动态分配pair<int,int>
s的数组。对于这种任务,首选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也可能根据您的使用情况有用