首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从嵌套的multimap访问multimap::equal_range返回的所有值

从嵌套的multimap访问multimap::equal_range返回的所有值
EN

Stack Overflow用户
提问于 2014-03-29 20:35:09
回答 1查看 964关注 0票数 1

我已经声明了一个包含字符串和映射的multimap。该映射包含字符串和一对ints。

代码语言:javascript
复制
std::multimap<string, std::map<string, std::pair<int, int>>> traders;
std::map<string, std::pair<int, int>> products;
std::pair<int, int> side;

我通过以下方式为该多任务添加新的值:

代码语言:javascript
复制
products.emplace(stringValue1, std::pair<int, int>(intValue1, intValue2));
traders.emplace(stringValue2, products);

现在,我遇到的问题。我试图找到具有相同键值的交易者,然后读取每个找到的交易者的相关值。要找到具有给定键值的交易者,我使用以下代码,它可以工作

代码语言:javascript
复制
std::pair< 
    std::multimap<string, std::map<string, std::pair<int, int>>>::iterator, 
    std::multimap<string, std::map<string, std::pair<int, int>>>::iterator
> ret;
ret = traders.equal_range(stringKeyValue);

我可以通过以下代码访问multimap的第一个值(它是字符串)

代码语言:javascript
复制
std::multimap<string, std::map<string, std::pair<int, int>>>::iterator itr1 = ret.first;
std::cout <<  " " << itr1->first << std::endl;

但我不能访问multimap的任何其他元素。如果您查看我的multimap声明,我不仅需要访问第一个字符串,还需要访问第二个字符串和与由其返回的交易员关联的一对ints。

我在尝试不同的东西,但它们都没有用,现在我的头都融化了。希望你们能帮上忙。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-29 22:14:22

也许这个能帮上忙。我还没试过呢。

代码语言:javascript
复制
typedef std::map<string, std::pair<int, int> > TraderProductMap;
typedef std::multimap<string, TraderProductMap> TraderMap;

typedef TraderProductMap::iterator TraderProductMapIter;
typedef TraderMap::iterator TraderMapIter;

std::pair<TraderMapIter, TraderMapIter> range;
range = traders.equal_range(stringKeyValue);

for(TraderMapIter itTrader = range.first;itTrader != range.second;++itTrader) {

    std::cout <<  " " << itTrader->first << std::endl;

    for(TraderProductMapIter itProduct = itTrader->second.begin();itProduct != itTrader->second.end();++itProduct) {
        std::cout <<  "  " << itProduct->first << " " itProduct->second->first << " " << itProduct->second->second << std::endl;
    }

    std::cout << std::endl;

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22736564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档