08/03/31 23:21:33
解放しようとしているものを取り違えている。
v.empty()がtrueだけどメモリがreserveされてる話とは別。
vector<Hoge*>().swap(v);
てことだろうけど、これだとvの中のHoge*が指す先はリークする。
878:デフォルトの名無しさん
08/03/31 23:22:22
delete v.back();
'delete' のオペランドは非 const ポインタでなければならない
879:デフォルトの名無しさん
08/03/31 23:23:14
>>878
vがconstなんだろ。それなら無理だ。
880:デフォルトの名無しさん
08/03/31 23:23:47
>>877
後ろからサイズを小さくしていくならばresize()という関数あるけど駄目なの?
881:デフォルトの名無しさん
08/03/31 23:24:36
vector<int> v(10000); だが・・・
882:デフォルトの名無しさん
08/03/31 23:25:26
>>880
元の質問読んでる?vector<Hoge*>の各要素が指す先をdeleteしつvectorをemptyにしたいって言ってるんだよ。
883:デフォルトの名無しさん
08/03/31 23:31:04
そういうことね
884:デフォルトの名無しさん
08/03/31 23:39:18
>>875
3番目はboost無くても数行で実装できるよね
URLリンク(www.google.com)
885:デフォルトの名無しさん
08/03/31 23:48:18
>>875
うん。今回だとdeleteを適用する関数オブジェクト作るだけだしね。
886:デフォルトの名無しさん
08/04/01 16:21:58
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:windowsXP
[3.2] コンパイラ名とバージョン: visual studio 2003
[3.3] 言語:C言語
[4] 期限:2008年4月2日午前8時
[5] その他の制限:なし
よろしくお願いします