在唯一键上增强unordered_multimap循环

gsf

在boost unordered_multimap中循环遍历唯一键的最简单方法是什么。

例如我有这个:

std::set<int> used;
for (auto p : valuesMap)
{
    if (used.count(p.first))
        continue;
    used.insert(p.first);

    auto range = valuesMap.equal_range(p.first);
    if (p.first)
    for (auto v = range.first; v != range.second; ++v)
        //do something;
}

有更好的方法做到这一点。似乎无序映射应该已经知道唯一键。

拉本斯基

您想要做的是找到一种方法来获取遵循特定键的迭代器。multimap我通常会使用upper_bound但是由于unordered_multimap没有那个-我必须使用equal_range.second

for (auto iter=valueMap.begin();
     iter!=valueMap.end();
     iter=ValueMap.equal_range(iter->first)->second){
  uniq_key=iter->first;
  // Do whatever you want with uniq_key
}

但是您的例子对我来说很奇怪-因为您的确考虑了所有要素。如果我想编写您的代码,然后做您想做的事情,这就是我要做的事情:

for (auto iter=valueMap.begin()
     iter!=valueMap.end();
     ){ // Notice the lack of ++iter!!!
  auto end=valueMap.equal_range(ier->first)->second;
  for (;iter!=end;++iter)
    // Do something
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

关于std :: unordered_multimap中键唯一性的保证

来自分类Dev

是对unordered_multimap键进行平均的更好方法吗?

来自分类Dev

联接表上2列的唯一键

来自分类Dev

Android唯一键

来自分类Dev

MySQL:唯一键

来自分类Dev

唯一键 [定制]

来自分类Dev

用于插入 std::unordered_set 的 3D 整数坐标的唯一键

来自分类Dev

在unordered_multimap中具有重复键的项是否应按其插入顺序保留?

来自分类Dev

std :: unordered_multimap的存储桶是否仅包含具有等效键的元素

来自分类Dev

等效键为std :: unordered_multimap的元素中的随机元素

来自分类Dev

从unordered_multimap中删除元素

来自分类Dev

C ++ unordered_multimap插入哈希

来自分类Dev

从unordered_multimap中删除元素

来自分类Dev

将unordered_multimap与struct数据类型一起使用

来自分类Dev

使用主键和唯一键更新重复键上的MySQL

来自分类Dev

用唯一键返回多行?

来自分类Dev

禁用主/唯一键排序

来自分类Dev

MariaDB主键与唯一键

来自分类Dev

mysql-更改唯一键

来自分类Dev

MySQL多个唯一键,缺点

来自分类Dev

浏览器唯一键

来自分类Dev

Sphinx中的唯一键

来自分类Dev

结合唯一键的MySQL性能

来自分类Dev

如何检查唯一键约束

来自分类Dev

MySQL / Maria唯一键表示

来自分类Dev

ReactCSSTransitionGroup 唯一键错误

来自分类Dev

数组中的唯一键

来自分类Dev

React JS 唯一键道具

来自分类Dev

如何拥有 unordered_multimaps 的 unordered_multimap