1.关联容器
1前面我们学习了顺序容器,顺序容器是通过位置(索引)来访问的。
2.而关联容器是通过键(key)来访问的,每个值都关联一个key,通过key来访问。
3.关联容器包括map,multimap和multilist。
4.map是(key,value)的键值对,通过key获得value,并且是唯一的。
5.如果key需要重复可以使用multimap和multilist。
6.pair类型
pair类型包含两个数据值,包含在utility头文件中,常用的操作有:
pair<T1, T2> pi;
pair<T1, T2> p1(v1,v2);
make_pair(v1,v2);
p1.first;
p2.second;
实例:pair的创建和初始化
pair<string, string> p;
p = make_pair("1", "one");
cout << p.first << "," << p.second << endl;//first是key second是value
2.map
1.map是一个key-value的键值对的集合,可以把它理解为关联数组,把key值理解为数组下标,通过key获得值。
2.map的定义
例如
void test()
{
map<srtring,string> m;//定义一个空map
map<string,string> m2(m);//定义一个m的副本
map<string,string> m3(m.begin(),m.end());//通过迭代器定义
}
3.操作map
map<string, string> m1;
m1["1"] = "one";
m1["2"] = "two";
m1["3"] = "three";
cout << m1.begin()->first << ";" << m1.begin()->second << endl;
//插入
pair<string, string> p = make_pair("4", "four");
m1.insert(p);
cout << m1["4"] << endl;
//查找
map<string,string>::const_iterator it = m1.fine("3");
cout<<it->second<<endl;
//删除
m1.erase("1");
//遍历
it = m1.begin();
while(it!=m1.end())
{
cout<<it->first<<";"<<it->second<<endl;
++it;
}