我需要帮助在C++中迭代无序映射。我正在尝试将集合的元素放入一个数组中,以便对数组进行排序。
for(auto it=s.begin();it!=s.end();it++){
a[i]=*it;
i++;
}
您在这里使用了许多不同的术语。
- unordered_set
- 无序映射
- 集合
- 阵列
所以,有点不清楚你真正想做什么。
如果您有一个std::unordered_set
,并希望将数据放入std::set
,那么您可以简单地使用其范围构造函数并编写类似std::set<int> ordered(s.begin(),s.end());
的内容
这同样适用于std::vector
,它也有一个范围构造函数。数组,无论是C样式还是C++std::array
,都比较复杂,因为您需要提前知道原始数据的大小。因为:数组有一个编译时定义的固定大小。
为了根据CCD_ 6或CCD_;值";而不是键,您需要使用带有特殊排序函子或lambda的std::multiset
。如果您编辑您的问题并提供更多详细信息,那么我将为您提供源代码。