前语:
主要是讲了map容器根本操作,刺进和刺进成果的判别.查找和查找的反常处理.
反常处理非常重要!!!!
1.map是规范的关联性容器,一个map是一个键值对序列,也便是(key,value)对,它供给根据key的快速检索才能
2map中key是仅有的,调集中的元素按必定次序宣布,元素刺进历程是按次序规矩刺进,所以不能指定刺进方位.
3map的详细完成是选用红黑树变体的平衡二叉树的数据结构,在刺进操作和删去操作上比vector快
4map能够直接存取key所对应的value,支撑[]操作符
5map支撑仅有键值,每个键只能呈现一次;
6multimap的相同键能够呈现屡次
容器的共通才能
除了queue与stack以外,每个容器都供给可回来迭代器的函数,运用回来的迭代器就能够拜访元素
一般STL不会丢出反常,要求运用者保证传入正确的参数
每个容器都供给了一个默许结构函数跟一个默许复制结构函数
include"map"//根底操作,增修改查voidmain11(){//添加mapint,stringmapl;//办法1(pairint,string(1,"teacher01"));(pairint,string(2,"teacher02"));//办法2(make_pair(3,"teacher04"));(make_pair(4,"teacher05"));//办法3(pairint,string::value_type(6,"teacher06"));(pairint,string::value_type(7,"teacher07"));//办法4mapl[8]="teacher08";mapl[9]="teacher09";//容器的遍历for(mapint,string::iteratorit=();it!=();it++){coutit-first"t"it-secondl;}cout"遍历完结"l;//容器的删去while(!()){mapint,string::iteratorit=();coutit-first"t"it-secondl;(it);}}//刺进的四种办法异同//前三种办法回来的是一个pairiterator,bool,能够经过追寻源码的办法完成//若key现已存在则报错//数组办法:若key现已存在则掩盖voidmain22(){mapint,stringmapl;//办法1pairmapint,string::iterator,boolmypair=(pairint,string(1,"teacher01"));(pairint,string(2,"teacher02"));//办法2pairmapint,string::iterator,boolmypair=(make_pair(3,"teacher04"));(make_pair(4,"teacher05"));//办法3pairmapint,string::iterator,boolmypair=(pairint,string::value_type(6,"teacher06"));if(==true){cout"key5刺进"l;}else{;l;};//办法4mapl[8]="teacher08";mapl[9]="teacher09";//容器的遍历for(mapint,string::iteratorit=();it!=();it++){coutit-first"t"it-secondl;}cout"遍历完结"l;//容器的删去while(!()){mapint,string::iteratorit=();coutit-first"t"it-secondl;(it);}//map的查找和反常处理mapint,string::iteratorit2=(100);if(it2==()){cout"key的值不存在"l;}else{coutit2-first"t"it2-secondl;}//equal_range(5);//反常处理pairmapint,string::iterator,mapint,string::iteratormypair=_range(5);//回来2个迭代器,行成一个pair//第一个迭代器=5的方位//第一个迭代器=5的方位if(=()){cout"第一个迭代器=5的方位不存在"l;}else{"t";}//运用第2个迭代器if(=()){cout"第二个迭代器5的方位不存在"l;}else{"t";}voidmain(){main11();//main22();//main33();//main44();cout"hello"l;system("pause");return;}流动餐车 酒店流动宴席餐饮车