STL中map容器的几种插方法的区别

来源:互联网 发布:都市重生小说知乎 编辑:程序博客网 时间:2024/05/18 03:44

STL中map容器的几种插入方法与区别是什么?

map <int, string> map1;pair<map<int, string>::iterator, bool> m_pair = map1.insert(make_pair(1, "wangpeng"));if (m_pair.second == true){cout << "插入成功" << endl;cout << m_pair.first->first << m_pair.first->second << endl;}m_pair = map1.insert(pair<int, string>(2, "sunsun"));m_pair = map1.insert(map<int, string>::value_type(3, "zhaosi"));//这三种方法统称为insert方法, 他的返回值可以同过查看STL源码得治为:pair<iteraotr, bool>类型//insert的方法如果插入失败时m_pair.second 的值为false,你可以进行判断得知你的插入是否成功。//pair<map<int, string>::iterator, bool>这个类型需要记住,它就是insert方法的返回值类型,//根据此类型定义变量即可得到是否插入成功的信息。map1[4] = "hello";map1[4] = "jjjjj";//但是这种方法却不一样,它不是报错,而是进行覆盖,在上面这种情况下最终map1[4]将会等于“jjjj”。//结论:insert方法的插入如果有重复数据会插入失败,而map1[] = ""这种方式会覆盖原有的数据。


1 0