C++ 创建一个1D数组,每个单元格有两个变量?
如何创建一个一维数组,该数组的每个单元格可以存储两个元素i,j?例如,数组[0]返回两个i、j单元格,数组[1]返回两个下一个单元格,然后 您需要的是一个结构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&
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
...