入れ子のsetに挿入

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
set

入れ子のsetに挿入

#1

投稿記事 by set » 13年前

VIsual Stdio 2012 で C++ です
入れ子のセットに対してイテレータ i を作り、イテレータが指す子のsetにsaとsbを挿入したく、
i->insert(sa)と書いたのですが
    error C2663: 'std::set<_Kty>::insert' : 4 オーバーロードに 'this' ポインターのための必要な定義がされていません。
とコンパイルエラーが出ます。なぜですか?
i->find(sa)やi->end()ではエラーが出ないのですが・・・
よろしくお願いします。


コード:

#include<iostream>
#include<set>
#include<string>

set< set<string> > setset;

void findInsert(string sa, string sb){
	for(set< set<string> >::iterator i=setset.begin(); i!=setset.end(); ++i){
		if(i->find(sa)!=i->end() || i->find(sb)!=i->end(){
			i->insert(sa);
			i->insert(sb);
		}
	}
}

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: 入れ子のsetに挿入

#2

投稿記事 by h2so5 » 13年前

std::setではイテレータによる走査中に内容を変更することができません。

参考URL:
http://stackoverflow.com/questions/2523 ... ual-studio

set

Re: 入れ子のsetに挿入

#3

投稿記事 by set » 13年前

ありがとうございました

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: 入れ子のsetに挿入

#4

投稿記事 by みけCAT » 13年前

解決でしたら、解決チェックをお願いします。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

閉鎖

“C言語何でも質問掲示板” へ戻る