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