如何创建一个1D数组,该数组的每个单元格可以存储两个元素(i,j)?例如,array [0]返回i,j的两个单元格,array [1]返回两个下一个单元格和....
答案 0 :(得分:5)
你需要的是一个结构
struct mydata
{
int i;
int j;
};
然后你可以在你的主要部门做:
mydata x[5];
x[0].i = 1;
x[0].j = x[0].i++;
等等
答案 1 :(得分:5)
你应该使用对矢量:
std::vector<std::pair<TI, TJ>> v;
TI
和TJ
分别是第一个和第二个元素元素的类型。
然后添加如下元素:
v.push_back(std::make_pair(i, j));
通过以下方式访问它们:
v[0].first // first cell
v[0].second // second cell
v[1].first // and so on
...
答案 2 :(得分:4)
这可以通过多种方式实现。您可以使用std::vector
创建数组,并使用std::pair<T, U>
作为元素类型,其中T
和U
是您想要的任何类型。
std::vector<std::pair<T, U>> vec;
在C ++ 11中,您也可以使用std::tuple
(如果每个单元格需要超过2个元素),
std::vector<std::tuple<T, U, Z>> vec;
或者,如果您想要“命名”元素,则可以使用自定义结构/类:
struct Foo {
T i;
U j;
};
std::vector<Foo> vec;