Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 创建一个1D数组,每个单元格有两个变量?_C++ - Fatal编程技术网

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

C++ 创建一个1D数组,每个单元格有两个变量?,c++,C++,如何创建一个一维数组,该数组的每个单元格可以存储两个元素i,j?例如,数组[0]返回两个i、j单元格,数组[1]返回两个下一个单元格,然后 您需要的是一个结构 struct mydata { int i; int j; }; 然后,您可以在主菜单中执行以下操作: mydata x[5]; x[0].i = 1; x[0].j = x[0].i++; 以此类推这可以通过多种方式实现。您可以使用创建数组,并将其用作元素类型,其中T和U是您想要的任何类型 std::vector&

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

您需要的是一个结构

struct mydata
{
    int i;
    int j;
};
然后,您可以在主菜单中执行以下操作:

mydata x[5];

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

以此类推

这可以通过多种方式实现。您可以使用创建数组,并将其用作元素类型,其中T和U是您想要的任何类型

std::vector<std::pair<T, U>> vec;
如果需要命名元素,也可以使用自定义结构/类:

struct Foo {
  T i;
  U j;
};

std::vector<Foo> vec;

应使用成对向量:

std::vector<std::pair<TI, TJ>> v;
并通过以下方式访问:

v[0].first // first cell
v[0].second // second cell
v[1].first // and so on
...

不确定你在问什么?是否需要类似于int value=array[0].x+array[0].y;?这实际上是C++问题的一个C回答。类将优于结构。但除此之外,这是正确的。我不认为元组有任何优势。我怀疑Paul R的评论与struct的使用关系不大,更多的是与原始C数组的使用有关,而不是与std::vectorI有关。我认为为了学习,最好先使用数组来理解它。您在代码中使用的最好是std::vector。一旦你知道它在那个模型中是如何工作的。然后可以C++将结构转换为类,并将数组转换为向量。
v.push_back(std::make_pair(i, j));
v[0].first // first cell
v[0].second // second cell
v[1].first // and so on
...