将向量移动到 unordered_set
Moving a vector into an unordered_set
我有一个 vector<T>
,我想用它来初始化 unordered_set<T>
。 vector<T>
以后再也不会用了。
我是怎么做的如下
std::vector<T> v{ /* some large amount of data, typically strings */ };
std::unordered_set<T> ht;
std::move(v.begin(), v.end(), std::inserter(ht, ht.end()));
我想知道是否有更直接的方法可以使用 unordered_set
构造函数来做到这一点?它的移动构造函数不接受向量。
这个解决方案实际上需要更多的字符,但它确实更直接地表达了意图:
std::unordered_set<T> ht(std::make_move_iterator(v.begin()),
std::make_move_iterator(v.end()));
我有一个 vector<T>
,我想用它来初始化 unordered_set<T>
。 vector<T>
以后再也不会用了。
我是怎么做的如下
std::vector<T> v{ /* some large amount of data, typically strings */ };
std::unordered_set<T> ht;
std::move(v.begin(), v.end(), std::inserter(ht, ht.end()));
我想知道是否有更直接的方法可以使用 unordered_set
构造函数来做到这一点?它的移动构造函数不接受向量。
这个解决方案实际上需要更多的字符,但它确实更直接地表达了意图:
std::unordered_set<T> ht(std::make_move_iterator(v.begin()),
std::make_move_iterator(v.end()));