Есть ли простой способ добавить все элементы vector
в unordered_set
? Они одного типа. Прямо сейчас я использую цикл for и мне интересно, есть ли лучший способ сделать это
добавление элементов вектора в неупорядоченный набор
Ответы (2)
Если вы строите unordered_set, то:
std::vector<int> v;
std::unordered_set<int> s(v.begin(), v.end());
person
mythagel
schedule
12.10.2012
Простите меня, если в моем синтаксисе есть небольшие ошибки, но вы можете попробовать функцию std::copy, он предназначен для этой цели.
std::vector<int> v;
std::unordered_set<int> s;
std::copy(v.begin(),v.end(),std::inserter(s,s.end()));
person
Karthik T
schedule
12.10.2012
std::inserter
требуется для вставки в ассоциативный контейнер.
- person James McNellis; 12.10.2012
да, я знал, что что-то упустил, исправил.
- person Karthik T; 12.10.2012
s.end() остается действительным, даже если контейнер перефразируется?
- person Johannes Schaub - litb; 09.12.2014
если v пусто, то к s будет добавлен 0!
- person James Harper; 08.07.2015