web-dev-qa-db-ja.com

セットを別のセットに追加

各要素を反復処理するよりも、セットを別のセットに追加するより良い方法はありますか?

私が持っています :

set<string> foo ;
set<string> bar ;

.....

for (set<string>::const_iterator p = foo.begin( );p != foo.end( ); ++p)
    bar.insert(*p);

これを行うより効率的な方法はありますか?

47
mr.bio

範囲を挿入できます:

bar.insert(foo.begin(), foo.end());
85
CB Bailey

より効率的ではありませんが、コードは少なくなります。

bar.insert(foo.begin(), foo.end());

または、重複を効率的に処理する結合を取ります。 (該当する場合)

set<string> baz ;

set_union(foo.begin(), foo.end(),
      bar.begin(), bar.end(),
      inserter(baz, baz.begin()));
8
Eddy Pronk