map映射,适配器,算法

来源:互联网 发布:c语言函数求最小公倍数 编辑:程序博客网 时间:2024/05/18 01:21

1

Map由key和value组成,(key,value),给定一个唯一的key就能找到value
Map中是以pair<key,value>存储的,pair就是将两个数据绑在一起;


Map<string,string>mapstu;创建map对象


为mapstu插入第一个pair数据:

Mapstu.insert(pair<string,string>(“001”, “张三”))


Map迭代器:
map<string,string>::iterator iter;

For(iter=mapstu.begin(); iter!=mapstu.end(); iter++){
  cout<<iter->first<<“ ”<<iter->second<<end;
}

iter->first 是key,iter->second是value


map添加数据三种方法;
  map<int ,string> maplive;  
   1.maplive.insert(pair<int,string>(102,"aclive"));
 pair表示把数据绑在一起
   2.maplive.insert(map<int,string>::value_type(321,"hai"));
Value_type表示这个容器的元素的类型
  3. maplive[112]="April";  //map中最简单最常用的插入添加



insert不允许插入key值相同的数据,但是第三种可以,第三种是最常用的方法

用insert插入函数,唯一性;无法覆盖,如:
Mapstu.insert(map<string,string>::value_type(“001”,”张三”));
Mapstu.insert(map<string,string>::value_type(“001”,”李四”));
上述 执行后,应该是第一个语句,第二个语句无效



检查insert是否成功,用pair来获得是否插入成功的信息,代码:
Pair<map<string,string>::iterator,bool> insert_pair;
Insert_pair = mapstu.insert(map<string,string>:value_type((“001”,”张三”)))
通过pair的第2个变量可以知道是否插入成功:
第一个返回的是一个map的迭代器,
如果成功,insert_pair.second的值是true,否则false



3,map中元素的查找:    find()函数返回一个迭代器指向键值为key的元素,如果没找到就返回指向map尾部的迭代器。
            map<int ,string >::iterator l_it;;     l_it=maplive.find(112);    if(l_it==maplive.end())                 cout<<"we do not find 112"<<endl;    else cout<<"wo find 112"<<endl;

4,map中元素的删除:
   如果删除112;    map<int ,string >::iterator l_it;;    l_it=maplive.find(112);    if(l_it==maplive.end())         cout<<"we do not find 112"<<endl;    else  
  maplive.erase(l_it);  //delete 112;




适配器的函数

empty()

pop()

push()

top()



算法

fill()

copy()

merge()

remove()

replace()

find()

search()

sort()

reverse()

swap()