将向量的元素添加到无序集合

Posted

技术标签:

【中文标题】将向量的元素添加到无序集合【英文标题】:adding elements of a vector to an unordered set 【发布时间】:2012-10-12 01:17:01 【问题描述】:

有没有一种简单的方法可以将vector 的所有元素添加到unordered_set?它们属于同一类型。现在,我正在使用 for 循环,想知道是否有更好的方法来做到这一点

【问题讨论】:

【参考方案1】:

如果您正在构建 unordered_set,那么:

std::vector<int> v;
std::unordered_set<int> s(v.begin(), v.end());

【讨论】:

【参考方案2】:

如果我的语法有任何小错误,请原谅我,但你可以试试std::copy function,它就是为此目的。

std::vector<int> v;
std::unordered_set<int> s;
std::copy(v.begin(),v.end(),std::inserter(s,s.end()));

【讨论】:

std::inserter 需要插入关联容器。 是的,我知道我错过了什么,已修复。 即使容器重新散列,s.end() 是否仍然有效? 如果 v 为空,则 0 将添加到 s!

以上是关于将向量的元素添加到无序集合的主要内容,如果未能解决你的问题,请参考以下文章

set集合——无序的不重复元素序列

Redis集合操作

通过元素指针的无序映射作为键对向量进行排序

Yii redis 集合的使用

python 集合

hashset是无序的,list是有序的,请问这句话是啥意思,怎么理解