获取 C++ 中的前 N 个元素多重集合
如何从多重集结构中获取前 N 个元素,而不需要不断获取第一个 (.begin()) 元素然后删除它?
我只想对前 N 个元素求和而不影响多重集。
How can I get the first N elements from a multiset structure, without constantly getting the first (.begin()) element and then erasing it?
I just want to sum the first N elements without affecting the multiset.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
std::next
是 C++11 库的补充。这是针对较旧编译器的解决方案:两种解决方案都会对多重集进行两次迭代。如果你想防止这种情况,请使用手动循环:
std::next
is a C++11 library addition. Here is a solution for older compilers:Both solutions iterate over the multiset twice. If you want to prevent that, use a manual loop:
您可以像遍历任何其他容器一样遍历
multiset
,并在看到n
元素后停止。You could iterate over the
multiset
like you would over any other container, and stop once you've seenn
elements.