STL中Multimap的一个例子

来源:互联网 发布:知乎离线 编辑:程序博客网 时间:2024/05/20 08:41
//------------------------------------------------//  [1/15/2013 Administrator]//  Project: mapp1//  File: mapp.cpp//-------------------------------------------------#include <iostream>#include <map>#include <string>using namespace std;int main(){//自定义一个容器typedef multimap<int, string> IntStringMMap;IntStringMMap coll;   //定义一个Int/String形式容器//向容器无序的插入一些值//一个关键字对应一个值coll.insert(make_pair(5, "tagged"));coll.insert(make_pair(2, "a"));coll.insert(make_pair(1, "this"));coll.insert(make_pair(4, "of"));coll.insert(make_pair(6, "strings"));coll.insert(make_pair(1, "is"));coll.insert(make_pair(3, "multimap"));//打印容器里面所有元素的值//遍历所有的元素//每个元素的第二项对应的是值IntStringMMap::iterator pos;for (pos = coll.begin(); pos != coll.end(); ++pos){//cout << (*pos).second << " ";  //和下面的效果一样cout << pos->second << " ";}cout << endl;return 0;}/*1. 这里的元素是成对的键值/实值(key/value pair),所以你必须首先生成这个pair,再   讲它插入群集内部。辅助函数make_pair()正是为了这个目的而打造。2. 迭代器所指的是“键值/实值”对组(key/value pair),因此你无法一口气打印他们,必须   取出pair的成员,亦即所谓的first和second。因此,以下语句:pos->second   便取得了“键值/实值”对组(key/value pair)中的第二部分,也就是multimap元素的实值(value).   同样的道理,以下语句:pos->first   取得了“键值/实值”对组(key/value pair)中的第一部分,也就是multimap元素的实值(key).* Map和MultimapsMap的元素都是“实值/键值”所形成的一个对组(key/value pairs).每个元素有一个键,是排序的基础。每个键只能出现一次,不允许重复。Map为关联式数组,具有任意索引类型。Multimaps和map相同,但允许重复元素,也就是说multimap可包含多个键值(key)相同的元素。Multimap可被当作“字典”使用。*/


 

原创粉丝点击