我需要编写一个以参数2d数组作为参数的函数。数组的每个元素都有一个Integer值。 作为输入,我有一个2D数组,例如:
[1][1][2][2]
[2][1][2][2]
[3][3][3][3]
[22][.......
作为输出,我需要存储每个值的索引:
value = 1 : [0,0] ; [0,1] ; [ 1,1]
value = 2 : [1,0] ; ....
value = 3 : [2,0] ; .......
value = 22 : [.........
阵列的大小可以是各种各样的,与值的数量相同。 是否有可能将数据保存到vector或任何其他数据类型以便稍后我可以读取这些值及其索引?
对不起,如果有什么不清楚,这是我的第一篇帖子:) 干杯
编辑:
我尝试做的很好:我创建了一个类索引
class Indexes
{
public:
int x;
int y;
};
后来我创建了一个矢量vect; 我试图向该向量添加索引。问题是当我试图为examlpe保持值分开时
for(int i=0 ; i<size ; i++){
for(int i=0 ; i<size ; i++){
if(array[i][j].value = 1)
Indexes ind(i,j);
vect.push_back(ind);
}
}
但我能得到的只是一个值的矢量并且存储了它的索引;
答案 0 :(得分:1)
例如,您可以将此索引存储在对向量的映射中。
以下是一些示例代码:
typedef std::pair<int, int> ElementIndex;
typedef std::vector<ElementIndex> IndexList;
typedef std::map<int, IndexList> ValuesIndexMap;
所以ValuesIndexMap
是从值到存储该值的所有索引的向量的映射,其中索引(类型ElementIndex
)是一对整数 - 行和列。 / p>