2011-01-20 8 views
0

失敗しますベクターへのマップの
vector<map<vector<string> , vector<string> > > listedParameterMap;挿入マップは、私はそれが次のようにoccuesどこが理解できなかったエラーが発生している二度目

挿入:メソッドの頭の上に ベクトル宣言:私は、私はリストに(ベクトル)を入れて(実行時に決定されたどのように多くの)それらのいくつかを必要とする
listedParameterMap.insert(listedParameterMap.end(), 1, parameterMap);

この手順は、初めて正常に動作します。 2度目(地図は正しく塗りつぶされています)、それはうまく機能しません。
私は事に気づいた:私は、マップの大きさを与える:
cout << "listedParameterMap " << listedParameterMap.size();
それはサイズを示したが、2回目以降で、時計は、それはまだ言います。 また私に有線内容を示しています

スクリーンショット: alt text

LastFirst defently正しく満たされて挿入されている第2のマップのように見えるものを含める必要があります。ベクトルの同じ :part1_inputpart2_output

コード:

for (unsigned int index = 0; index < part1_input.size(); index++) { 
     map<vector<string> , vector<string> > parameterMap; 
     parameterMap.insert 
     (pair<vector<string> , vector<string> > (part1_input[index], part2_output[index])); 
     listedParameterMap.insert(listedParameterMap.end(), 1, parameterMap); 
     cout << "listedParameterMap " << listedParameterMap.size(); 
} 

これがなぜ起こるか私は本当に任意のアイデアをいただければ幸いです...



EDIT:

「解決策」は物を印刷していました。ウォッチウィンドウに正しい値が表示されていません。つまり、私の問題はどこか別の場所で起きたことになります。しかし、これはここにanwseredされています。どのように私を助けようとした誰のおかげで!

+7

「動作しない」と定義してください。 –

+2

また、typedefを使用することを検討してください! –

+0

画像を見て...私に手を差し伸べる前に-1与えることは私を助けていない! 2番目のエントリ( 'Last')があるはずです(' First'に似ています) – Beasly

答えて

1

あなたのコレクションから何かを出力して、あなたが見なければならないと思っているかどうかを確認するテストを見たいと思います。実際には適切な単体テストを書かないのはなぜですか?

多くのコレクションを値ごとに渡しています。これは非常に高額になる可能性がありますが、実際に更新していると思われるもののコピーであるものを更新し、その結果を元のものに表示しないこともあります。

特に、最適化されたビルドを実行している場合は、Visual Studioの "watch"ウィンドウの値にあまり注意を払いません。

+0

私はすでにそれに乗っています... – Beasly

+0

それは正しくあるようです。私はなぜこの**リスト**を使用してプログラムがクラッシュするのか理解していません。私はそれが正しく満たされていないので(時計)思った。私は見続けるだろう。私がそれを見つけなければ、私は新しい質問を開きます。ありがとうございました! – Beasly

関連する問題