-3

行数と列数が不明な 2D ベクトル内の int 値にアクセスしようとしています。

私はこれを試しました:

for(vector<int> vec : matrix){
        for(int i : vec){
            queue_lista.push(vec[i]);
        }
    }

この:

vector< vector<int> >::iterator row;
vector<int>::iterator col;
for (row = nums.begin(); row != nums.end(); row++) {
    for (col = row->begin(); col != row->end(); col++) {
        //queue_lista.push(nums[col][row]);
    }
}
4

1 に答える 1

0

最初のスニペットでiは、インデックスではなくベクター内の値を取ります。したがって、push(i)notを使用する必要がありますvec[i]

2 番目のスニペットでcolは、インデックスではなくイテレータです。したがって、添え字付けでも使用しないでください。 *colあなたのデータです。


vecパフォーマンスに関する注意: 最初のスニペットは、コピーではなく定数参照を使用すると、はるかに効率的になります。

于 2018-02-04T21:07:45.503 に答える