stl::multimap - 如何获取数据组?

2023-11-21

Multimap 本质上具有按键排序的数据组。我想要一种方法来访问这些单独的组并获取它们的聚合值。 例如,在一个std::multimap< string, int >我存储

{"Group1", 1}, 
{"Group1", 2}, 
{"Group1", 3}, 

{"Group2", 10}, 
{"Group2", 11}, 
{"Group2", 12}

存储这些值后,我应该能够迭代此多重映射并获取每个“组”的聚合值。问题是 STL 中没有定义任何函数来以这种方式访问​​ MultiMap。我可以用lower_bound, upper_bound手动迭代多重映射并汇总组的内容,但我希望 STL 中已经定义了更好的方法?任何人都可以提出一个解决方案来说明如何获取上例中一组的汇总值。


pair<Iter, Iter> range = my_multimap.equal_range("Group1");
int total = accumulate(range.first, range.second, 0);

是一种方式。

Edit:

如果您不知道要查找的组,并且只是浏览每个组,则可以像这样获取下一组的范围:

template <typename Pair>
struct Less : public std::binary_function<Pair, Pair, bool>
{
    bool operator()(const Pair &x, const Pair &y) const
    {
        return x.first < y.first;
    }
};

Iter first = mmap.begin();
Iter last = adjacent_find(first, mmap.end(), Less<MultimapType::value_type>());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

stl::multimap - 如何获取数据组? 的相关文章

随机推荐

  • 使用内联CSS - 在某些情况下是禁忌还是可以? [复制]

    这个问题在这里已经有答案了 可能的重复 内联样式与 CSS 中的样式 我想我正在寻找对此的一些意见 我完全赞成在单独的 css 文件中使用 css 样式作为类 但每隔一段时间 我就会遇到一种情况 我只需要为特定元素进行一些填充 或者仅在一种
  • 使用.NET捕获屏幕截图[重复]

    这个问题在这里已经有答案了 可能的重复 如何以位图形式捕获屏幕 我需要制作一个应用程序 每当按下特定按钮时都会捕获当前屏幕的快照 我搜索了很多 但只找到了如何捕获当前窗口 您能帮我弄清楚如何在 NET 中执行此操作吗 我们可以通过点击打印屏
  • mysql RAND() 限制

    您好 我有一个这样的查询 SELECT otel id FROM YAZILIM menu icerik WHERE YAZILIM menu icerik menu id 39 AND otel id IN SELECT otel id
  • 比较 Javascript 中的日期和时区

    当使用 gt 和 当您将其转换为 JavaScript 时 将按照您的预期考虑时间戳字符串表示形式的时区部分Date对象 内部值是一个简单的标量 标准化为UTC 所以比较时不需要特殊的时区处理Date对象 var d1 new Date D
  • Javascript 日期,这是我的错误还是我发现了错误?

    我的应用程序中有一个简单的 Javascript 部分 其中有一个链接 添加日期 它会在日期上添加 1 天 它总是工作得很好 除非日期是 11 07 2010 然后链接突然不再工作 它真的很奇怪 因为它只在特定日期 11 07 2010 挂
  • GCC 编译时抛出错误:错误:未知类型名称“FILE”

    我正在制作一个只写的函数 hello 到一个文件 我已将其放在另一个文件中 并将其标头包含在程序中 但 gcc 给出了一个错误 error unknown type name FILE 代码如下 app c include
  • 缩放 SKNode 不一致

    我已经创建了自己的解决方案 用于放大或缩小特定的 SKNode 而无需缩放整个场景 它似乎主要按照我期望的方式工作 有 2 个值得注意的例外 我希望在这里得到输入 首先是代码 该控制语句位于touchesMoved方法内 if touche
  • 使用jquery更改给定特定宽度范围的类名(媒体查询)

    我正在尝试修改以下 html div class col1 width8 img src images entity jpg div 我想使用媒体查询 但我不想修改css 而是将类名从width8替换为width6 对于下面的标准媒体查询来
  • iPhone 3GS 上后台线程消耗 100% CPU 导致潜在主线程

    在我的应用程序中 我在 NSOperationQueue 中执行 10 个异步 NSURLConnections 作为 NSInitationOperations 为了防止每个操作在连接有机会完成之前返回 我调用 CFRunLoopRun
  • 编辑表单中的 Django-Taggit

    这是一个模型类 class ModelName models Model pasta TaggableManager verbose name u Pasta 和一个表单模板 正常 P form as p 我想让一切都非常干净和有用 但结果
  • 使用“::”代替“module ...”作为 Ruby 命名空间

    在 Ruby 中 写法有区别吗class Foo Bar and module Foo class Bar用于命名空间 如果是这样 那又怎样 如果你使用class Foo Bar 但是Foo模块尚未定义 将会引发异常 而module Foo
  • Solr 通配符搜索

    如果我有一条包含关键字 Chris Muench 的记录 我希望能够匹配 Mue 或 Chr 我怎样才能用 solr 查询来做到这一点 目前我执行以下操作 results solr gt search Apache Solr Service
  • 使用 matplotlib 的内存泄漏

    这并不是一个错误报告 即使这些泄漏可能是由于 mpl 错误造成的 请解释所提出的问题 以寻求解决方法 问题很简单 绘制大量数据 使用plot 或scatter 清除 释放所有内容 垃圾收集 但仍然没有释放几乎所有内存 Line Mem us
  • 如何使用 Moment.js 排除两个日期之间的周末

    我试图在我的 JavaScript 代码中排除周末 我使用 moment js 并且很难为 天 选择正确的变量 到目前为止 我认为我需要通过将工作日变量更改为仅从第 1 天计数到第 5 天来排除第 6 天 星期六 和第 0 天 星期日 但不
  • 无需重新加载页面即可收到通知(例如 facebook 或 google plus 通知)

    将 Facebook 等通知发送到仪表板的理想机制是什么 我认为最好的方法是每 5 秒对 php 页面进行一次 Ajax 调用并检索通知 有没有更好的方法来进行类似的更改 它也应该适用于所有移动浏览器 我按照以下方式做 use post在j
  • 为什么 Graphics.MeasureString() 返回的数字高于预期数字?

    我正在生成收据 并使用 Graphics 对象调用 DrawString 方法来打印所需的文本 graphics DrawString string font brush widthOfPage 2F yPoint stringformat
  • Helm 3:连接到本地 Kubernetes 时出现 x509 错误

    我是一个完美的noob与 K8 一起 我安装了microk8s and Helm using snap在本地进行实验 我想知道我当前的问题是否来自于使用snap 据我了解 其目的是封装 环境 Ubuntu 20 04LTS helm ver
  • 将 ISO 8601 时间格式转换为正常持续时间

    我有一个持续时间字符串 PT1M33S 我想得到以下格式的结果 gt 01 33 谁能告诉我如何使用js或jquery做到这一点 这似乎不是时间格式 只是视频的持续时间 33 Seconds PT1M33S 1 Minute H 小时M 分
  • 如何从字符串中删除换行符?

    我有一个以下格式的字符串 string s This is a Test String n This is a next line t This is a tab n 我想删除所有出现的 n and r从上面的字符串 我努力了string
  • stl::multimap - 如何获取数据组?

    Multimap 本质上具有按键排序的数据组 我想要一种方法来访问这些单独的组并获取它们的聚合值 例如 在一个std multimap lt string int gt 我存储 Group1 1 Group1 2 Group1 3 Grou