如何获取数组中值的索引

时间:2013-09-28 21:24:51

标签: c++ arrays

我需要编写一个以参数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);
     }
}

但我能得到的只是一个值的矢量并且存储了它的索引;

1 个答案:

答案 0 :(得分:1)

例如,您可以将此索引存储在对向量的映射中。

以下是一些示例代码:

typedef std::pair<int, int> ElementIndex;
typedef std::vector<ElementIndex> IndexList;
typedef std::map<int, IndexList> ValuesIndexMap;

所以ValuesIndexMap是从值到存储该值的所有索引的向量的映射,其中索引(类型ElementIndex)是一对整数 - 行和列。 / p>