是否可以制作成对数组
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 根据您的使用情况也可能有用
我是 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 根据您的使用情况也可能有用