在unordered_set上迭代

发布于 2025-01-21 07:36:06 字数 181 浏览 0 评论 0原文

我需要在C ++中的无序地图上进行帮助。我试图将集合的元素放入数组中,以便对数组进行排序。

for(auto it=s.begin();it!=s.end();it++){
    a[i]=*it;
    i++;
}

I need help iterating over an unordered map in C++. I am trying to put the elements of the set into an array so that I can sort the array.

for(auto it=s.begin();it!=s.end();it++){
    a[i]=*it;
    i++;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟雨扶苏 2025-01-28 07:36:06

您在这里使用了许多不同的术语。

  • unordered_set
  • unordered_map
  • 设置
  • 数组,

因此,有点不清楚您真正想做什么。

如果您有一个std :: Unordered_set,并且要将数据放入std :: Set中,则可以简单地使用其范围构造函数并写出类似的内容。 std :: set< int>订购(s.begin(),s.end());

相同的功能将与具有范围构造函数的std :: vector一起使用。数组,C型或C ++ std ::数组更为复杂,因为您需要提前了解原始数据的大小。因为:数组的编译时间definde固定尺寸。

用于排序std :: mapsstd :: unordered_map根据其“值”而不是密钥,您需要使用std :: Multiset < /代码>带有特殊分类函数或lambda。如果您编辑问题并提供更多详细信息,那么我将为您提供源代码。

Your are using many differen terms here.

  • unordered_set
  • unordered_map
  • set
  • array

So, it is a little bit unclear what you really want to do.

If you have a std::unordered_setand want to put the data into a std::set, then you can simply use its range constructor and write something like std::set<int> ordered(s.begin(),s.end());

The same would work with a std::vector which has also a range constructor. Arrays, either C-style or C++ std::array are more complicated, because you need to know the size of the original data in advance. Because: Arrays have a compile time definde fixed size.

For sorting std::maps or std::unordered_maps according to their "value" and not the key, you need to use a std::multiset with a special sorting functor or lambda. If you edit your question and give more details, then I will provide source code to you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文