STL.multimap一对多映射,查询某个键对应的所有值

标签: STL(他山之石,可以攻玉) STL(他山之石,可以攻玉)
9人阅读 评论(0) 收藏 举报
分类:
#include<iostream>
#include<string>
#include<map>
using namespace std;

int main()
{
    multimap<string,int> m_map;
    string s("中国"),s1("美国");
    m_map.insert(make_pair(s,50));
    m_map.insert(make_pair(s1,30));
    m_map.insert(make_pair(s,55));
    m_map.insert(make_pair(s,60));
    m_map.insert(make_pair(s1,20));
    m_map.insert(make_pair(s1,10));

    cout << "方式1>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" << endl;
    multimap<string, int>::iterator it = m_map.find(s); int iCnt = m_map.count(s);
    for(int i = 0; i < iCnt; i++, it++){
        cout << it->first << " : " << it->second << endl;
    }
    cout << ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" << endl << endl;

    cout << "方式2>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" << endl;
    for(multimap<string, int>::iterator it = m_map.lower_bound(s1); it != m_map.upper_bound(s1); it++){
        cout << it->first << " : " << it->second << endl;
    }
    cout << ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" << endl << endl;

    cout << "方式3>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" << endl;
    for(multimap<string, int>::iterator it = m_map.equal_range(s).first; it != m_map.equal_range(s).second; it++){
        cout << it->first << " : " << it->second << endl;
    }
    cout << ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" << endl << endl;

    return 0;
}



查看评论

java 集合一个键对应多个值

在java集合的应用中map中的键值对只能一对一,怎么样让一个相同的键对应于多个值呢? 可以通过list 而实现就是先把值存放在list中,然后把list放在map中就可以实现例如: package ...
  • ZHANGTAOZAQaq
  • ZHANGTAOZAQaq
  • 2013年12月17日 22:08
  • 830

004_015 Python 字典的一键多值,即一个键对应多个值

代码如下: #encoding=utf-8 print '中国' #字典的一键多值 print'方案一 list作为dict的值 值允许重复' d1={} key=1 value=2 d...
  • houyj1986
  • houyj1986
  • 2014年03月31日 00:33
  • 14045

获取php数组的键名和对应的值

1.要返回数组中的所有值,可以使用array_values()函数。该函数将忽略原始的键名,使用顺序的数字对数组重新索引。 2.要返回一个数组的所有键,可以使用array_keys()函数。该函数返...
  • woshiliulei0
  • woshiliulei0
  • 2013年04月11日 18:27
  • 701

【MyBatis学习09】高级映射之一对多查询

上一篇博文总结了一下一对一的映射,本文主要总结一下一对多的映射,从上一篇文章中的映射关系图中可知,订单项和订单明细是一对多的关系,所以本文主要来查询订单表,然后关联订单明细表,这样就有一对多的问题出来...
  • eson_15
  • eson_15
  • 2016年06月14日 07:14
  • 7035

Hibernate关系映射---双向一对多增删查改实例

Hibernate关系映射---双向一对多增删查改实例 1、新建一个Java工程,添加hibernate3.3支持,连接test数据库 2、在src下新建com.etc.dao包,在包下新建Use...
  • ZZ2713634772
  • ZZ2713634772
  • 2017年07月27日 12:18
  • 385

sql查询数据库中有某个值的所有表

在数据库中查找含有某个值的所有表的表名,使用如下的存储过程可以做到这一点。 CREATE PROCEDURE dbo.FindString     @string NVARCHAR(100) A...
  • weizhiai12
  • weizhiai12
  • 2013年03月01日 10:37
  • 4198

mybatis中一对多映射mapper.xml文件

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"     "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> ...
  • lieyanhaipo
  • lieyanhaipo
  • 2017年03月14日 14:31
  • 414

hibernate中多对一映射查询

package com.hibernate1.entity; import org.hibernate.Session; import org.hibernate.SessionFacto...
  • pangqiandou
  • pangqiandou
  • 2016年11月27日 17:39
  • 438

MyBatis一对多映射实现方式

Mybatis映射##一、一对多 一个班级有多个学生,但是一个学生只有一个班级,学生就是多的那方。学生只有一个班级属性,班级有多个学生属性。所以学生类中只需要一个班级类的实例,班级里面需要一个列表来...
  • fengfangyuan
  • fengfangyuan
  • 2016年12月21日 19:47
  • 394

【SSH快速进阶】——Hibernate 多对一映射 和 一对多映射

上两篇文章说了一对一映射,这里说一下多对一和一对多的映射情况。 多对一和一对多映射的比较: 相同点:映射原理基本一致,建表时,都是在“多”的一端添加外键指向“一”的一端。 区别:维护的关系不同   ...
  • huyuyang6688
  • huyuyang6688
  • 2015年12月22日 11:42
  • 2621
    个人资料
    等级:
    访问量: 1187
    积分: 689
    排名: 8万+
    文章存档