0
vector <int> col(0);
vector<vector<int> > row(0);

for(i=0;i<10;i++)
col.push_back(some integer);

row.push_back(col);
col.clear();

誰かがここで何が悪いのか教えてもらえますか? ベクトルではcol[]エラーはありませんが、最後の行の前の行でデバッグで次の命令に移動すると、ちょうど size が 0 から 1 に変わりますが、ベクトルrow[]から取得する必要がある値がわかりませんcol[]?

編集:デバッグ画面のスクリーンショットを入れようとしましたが、評判の問題が発生しました。

4

1 に答える 1

0

コードに問題はありません。

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    vector< int > col(0);
    vector< vector<int> > row(0);

    for(int i=0;i<10;i++)
        col.push_back(i);

    row.push_back(col);
    col.clear();

    std::cout << "row size is: " << row.size() << std::endl;
    std::cout << "row 1st elem size is: " << row[0].size() << std::endl;
    std::cout << "col size is: " << col.size() << std::endl;

    return 0;
}

これは以下を出力します:

row size is: 1
row 1st elem size is: 10
col size is: 0

これは完全に期待されています。デバッガーのバグである可能性があります (実際のベクター サイズが表示されない場合があります)。

于 2014-10-28T16:21:57.930 に答える