mapより特定の値を持つ要素を削除したいのですが、上手くいきません。
下のようなコードで実現しようとしたのですが、eraseを呼んだ次のループでもう一度eraseを呼んで実行時エラーとなってしまうようです。
erase後のイテレータが指す値が悪いのではないかとは思うのですが、実際に何が悪いのかご存知の方がいらっしゃればアドバイスをお願いいたします。
string s[20];
char c='a';
map<string,bool> m;
//mapへの要素の挿入
for(int j=0;j<20;j++){
s[j]=string(&c);
c++;
if(j%10==0)
m[s[j]]=true;
else
m[s[j]]=false;
}
map<string,bool>::iterator i;
//削除処理
for(i=m.begin();i!=m.end();i++){
if(i->second){
m.erase(i);
}
}
No.1ベストアンサー
- 回答日時:
m.erase(i) すると iterator i の指す先が無くなるので、i++ できません。
そのものずばりのページがあったので、以下はそこを参照
要約すると、いっこ進んでから直前の要素を消す。
参考URL:http://www.sun-inet.or.jp/~yaneurao/intensive/cp …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Visual Basic(VBA) シート削除のマクロで「deleteメソッドは失敗しました」となります。助けてください! Sub 不要 6 2022/09/08 16:41
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) VBA横データを縦にしたいです 2 2023/08/08 19:38
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- その他(プログラミング・Web制作) pythonのmap、結果の利用は1度だけ? 5 2022/06/11 12:33
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
応用情報技術者試験の令和元年...
-
インクリメント演算子のみを用...
-
Windows formアプリで データグ...
-
右ビットシフト
-
Linux Cプログラミングを学ぶた...
-
プログラミングについて。 1つ...
-
ArduinoのジャイロモジュールMP...
-
c言語
-
これなにがちがうんですか??
-
Int('1234') で、strをかんたん...
-
C言語 配列と関数の練習問題
-
質問失礼します。 プログラム言...
-
C言語の関数と配列に関する質問
-
どなたかこのプログラミングを...
-
VisualStudio2022でC言語プログ...
-
C言語をコンパイルするとコンピ...
-
どちのほうがすきですか?
-
Notepad++の関数リスト表示の変...
-
WindowsのCapsLock(キャップス...
-
double型が正常に認識されてい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C# ListBoxのアイテムをユーザ...
-
特定の文字列が一致する行から...
-
strcmp関数などでの複数の文字...
-
C#でIPアドレスの取得について
-
Delphiで改行文字の置換がうま...
-
C#での関数テーブルの作り方
-
C# JSONについて
-
C#でプロパティを使わずXMLにデ...
-
C#で型変換
-
マルチスレッドで同時にFTPアッ...
-
「指定されたキャストは有効で...
-
GridViewで複数のDropDownList...
-
【Java8以降】csvファイルの複...
-
strtokでの空文字への置き換え
-
C++ ファイルからデータを取得
-
C++のSTL mapを使用するとセグ...
-
GDI+ DrawString() で指定範囲...
-
std::stringの継承
-
string→CStringの型変換について
-
2つのリストのマージ方法について
おすすめ情報