★初心者にVisual C++を教えるスレ★ Part6
■ このスレッドは過去ログ倉庫に格納されています
0326デフォルトの名無しさん
NGNG(VCにて作業しているので)ここに書かせてもらいます。
STL のdeque や vectorにおいて resize();で配列数を増やして
/* vector に入れるコンテナのタイプは適当なクラス*/
v[3].m=value;
このようにアクセスできますが、たとえば
v.resize(5);//要素数5
v[4].m=100;//コンテナの最後にアクセス これは問題なし
i=v[4].m;//iには100が入る
v.pop_front():;先頭のコンテナ除去
i=v[4].m;//iには何が入る?????
v[4].m=value;//<-koko
についていったいどういうことがおきるのでしょうか?
1 メモリ保護エラー
2 削除したのは先頭だけどINDEXとのリンクは保持してるから
iには100がはいるし読み出しもOK
3 resizeによって多めにメモリを確保しているので、メモリ保護エラーには
ならないが、不可思議なことがおこる。
4 神様だけが知っている。
ご存知の方がいらしたら教えてください
■ このスレッドは過去ログ倉庫に格納されています