Существует ли лучший способ добавить набор к другому набору, чем итерация через каждый элемент?
я имею:
set<string> foo ;
set<string> bar ;
.....
for (set<string>::const_iterator p = foo.begin( );p != foo.end( ); ++p)
bar.insert(*p);
Существует ли более эффективный способ сделать это?
Вы можете вставить диапазон:
bar.insert(foo.begin(), foo.end());
Это не более эффективный код, а меньше.
bar.insert(foo.begin(), foo.end());
Или возьмем союз, который эффективно работает с дубликатами. (если применимо)
set<string> baz ;
set_union(foo.begin(), foo.end(),
bar.begin(), bar.end(),
inserter(baz, baz.begin()));