在一个无序集合上迭代



我需要帮助在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。如果您编辑您的问题并提供更多详细信息,那么我将为您提供源代码。

最新更新