创建一个1D数组,每个单元格有两个变量

Create a 1D array that each cell have two variables?

本文关键字:单元格 两个 变量 数组 一个 1D 创建      更新时间:2023-10-16

如何创建一个一维数组,该数组的每个单元格可以存储两个元素(i,j)?例如,array[0]返回i、j的两个单元格,array[1]返回下一个单元格和... .

应该使用一对向量:

std::vector<std::pair<TI, TJ>> v;

其中TITJ分别是您的第一个和第二个单元格元素的类型。

然后添加如下元素:

v.push_back(std::make_pair(i, j));

并通过:

访问它们
v[0].first // first cell
v[0].second // second cell
v[1].first // and so on
...

你需要的是一个struct

struct mydata
{
    int i;
    int j;
};

你可以在你的main中:

mydata x[5];
x[0].i = 1;
x[0].j = x[0].i++;

等等

这可以通过多种方式实现。您可以使用 std::vector 来创建数组,并使用std::pair<T, U>作为元素类型,其中TU是您想要的任何类型。

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;