1

我需要编写一个以二维数组为参数的函数。数组的每个元素都有一个整数值。作为输入,我有一个二维数组,例如:

[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 : [.........

数组的大小可以是不同的,与值的数量相同。是否有可能将该数据保存到向量或任何其他数据类型,以便稍后我可以读取这些值及其索引?

抱歉,如果有不清楚的地方,这是我在这里的第一篇文章:)干杯

编辑:

好吧,我尝试做的是:我创建了一个类 Indexes

class Indexes
{
public:
    int x;
    int y;
}; 

后来我创建了一个矢量vect;我试图向该向量添加索引。问题是当我试图将值分开时,例如

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 个值的向量及其存储的索引;

4

1 回答 1

1

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

这是一些示例代码:

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

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

于 2013-09-28T21:32:55.830 回答