创建一个1D数组,每个单元格有两个变量
Create a 1D array that each cell have two variables?
如何创建一个一维数组,该数组的每个单元格可以存储两个元素(i,j)?例如,array[0]返回i、j的两个单元格,array[1]返回下一个单元格和... .
应该使用一对向量:
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
...
你需要的是一个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>
作为元素类型,其中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;
相关文章:
- 创建一个棋盘格或"Interweave"两个链接列表。IE 更改两个链表的指针
- C++:在多个线程中访问同一数组/向量的不同单元格是否会产生数据竞赛?
- 为什么具有静态存储持续时间的同一内联变量在包含在 VS2017 编译的两个翻译单元中时会构造和销毁两次
- 在单元测试中,如何在不使用 operator== 的情况下比较两个对象,这可能会错过新成员?
- GCC 6.3.0 中的 ODR 冲突,类型在两个单独的翻译单元中定义
- 将两个值添加到数组的单元格中
- 如何在VS2013上比较两个迭代器进行单元测试
- QTableView 在同时显示多个单元格时滚动缓慢
- 是否可以将两个数字放在数组的一个单元格中
- QTableView 在 1000 个可见单元格下性能缓慢
- 巨大的矢量"hangs"程序?(50000 x 50000 个单元格)
- 忽略两个C++宏之间的代码(防止创建静态单元测试对象)
- 分配一个由999999999个单元格组成的数组|C++
- 正在将具有多个值的XML属性加载到不同的表单元格中
- 使用CATCH C++单元测试框架测试两个std::向量是否相等
- 二维矩阵中两个单元格之间的距离
- 在不同的翻译单元中的两个变量违反了一个定义规则
- 创建一个1D数组,每个单元格有两个变量
- 一个定义规则和两个翻译单元中不同的类定义
- 如何合并qtable行的两个单元格