adding elements of a vector to an unordered set
32,555
Solution 1
If you're constructing the unordered_set then:
std::vector<int> v;
std::unordered_set<int> s(v.begin(), v.end());
Solution 2
Forgive me if my syntax has any minor bugs, but you can try the std::copy function, its meant for this purpose.
std::vector<int> v;
std::unordered_set<int> s;
std::copy(v.begin(),v.end(),std::inserter(s,s.end()));
Author by
jamesatha
Updated on July 09, 2022Comments
-
jamesatha almost 2 years
Is there an easy way to add all the elements of a
vector
to anunordered_set
? They are of the same type. Right now, I am using a for loop and was wondering if there is a better way to do it -
James McNellis over 11 years
std::inserter
is required to insert into an associative container. -
Karthik T over 11 yearsyup, i knew i missed something, fixed.
-
Johannes Schaub - litb over 9 yearsdoes s.end() remain valid even if the container rehashes?
-
James Harper almost 9 yearsif v is empty then an 0 will be added to s!