[STL]对std::map的插入和查询操作

原创 2007年10月11日 11:47:00

When you use the std::map data type, please note:

 Method1

std::map<int, CString> testMap;
testMap[
0= _T(“first”);
testMap[
0= _T(“second”);//it is OK, the value will be overwrite to “second”;

 

Method2

typedef std::map <int, CString>::value_type valType;
testMap.insert(valType(
0, _T(“first”));
testMap.insert(valType(
0, _T(“second”)); //it is faild, the value is still “first”

So in the method2, you have to delete the value with the same key before insert another value.

e.g.:

std::map <int, CString>::integrator it = testMap.find(0);
if ( it != testMap.end(); it++ )
      testMap.erase(
0);

What’s more, when you get a value by the array method(method1), If the specified key doesn’t exist in map, the key will be inserted automatically with a empty value. So make sure use testMap.find(key) to get any value in map rather than the array visite method.

e.g.:

//the key “1” doesn’t exist, it will be inserted and return  a empty string here.
CString str = testMap[1];

stl map 插入方式和特别需要注意的区别

map容器的插值方式和特别需要注意的区别: stl map键都是唯一的,如果插入相同的key, mapObj.insert不会覆盖原来的键值,mapObj[]会覆盖键值。 需要不唯一的key用mu...
  • Blues1021
  • Blues1021
  • 2015-08-15 18:54:13
  • 4835

stl中map的四种插入方法总结

stl中map的四种插入方法总结 方法一:pair 例: map mp; mp.insert(pair(1,"aaaaa")); 方法二:make_pair 例: map mp; mp...
  • F_Z_M
  • F_Z_M
  • 2017-09-28 09:18:02
  • 1298

STL学习之map容器(2)_insert

map::insert pair insert(const value_type& x); iterator insert(iterator posit...
  • richerg85
  • richerg85
  • 2012-06-24 08:44:21
  • 35676

多线程操作stl::map引起的数据不一致问题的解决过程与方法

昨天晚上业务出现了一次core dump,今天早上来check生产环境的core文件的堆栈内容如下: gdb ./appname --core=core.1234 ...
  • Poechant
  • Poechant
  • 2011-09-14 13:10:47
  • 8290

C++ STL map的使用和性能分析

1、map简介 map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操 作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。 ...
  • a418382926
  • a418382926
  • 2014-03-27 17:13:04
  • 8371

C++ STL中常见容器的时间复杂度

map, set, multimap, and multiset 上述四种容器采用红黑树实现,红黑树是平衡二叉树的一种。不同操作的时间复杂度近似为: 插入: O(logN) 查看:O(log...
  • wusecaiyun
  • wusecaiyun
  • 2015-07-02 10:44:40
  • 6110

stl : map 插入相同key组成的make_pair, 结果是插入不进去, 不是覆盖

// testprj.cpp : Defines the entry point for the console application. // #include "stdafx.h" #inclu...
  • LostSpeed
  • LostSpeed
  • 2014-10-21 17:00:28
  • 5031

stl std::map容器排序及使用注意事项

#include "stdafx.h" #include #include int _tmain(int argc, _TCHAR* argv[]) { /** * map中的每个元素都是...
  • analogous_love
  • analogous_love
  • 2014-11-05 12:44:12
  • 4210

STL之map::find方法的使用小例子

// map::find #include #include int main () { std::map mymap; std::map::iterator it; mymap['a']...
  • derkampf
  • derkampf
  • 2017-05-03 20:51:14
  • 7128

STL map []和insert的分析

STL中的map是一个key-value的数据结构 ,每一个key对应着一个值,而且key是唯一的,底层采用红黑树的数据结构实现。在使用map的过程中,有两种方式进行数据的插入,第一种是使用下标的方式...
  • houzhuoming1
  • houzhuoming1
  • 2015-10-30 11:18:10
  • 5465
收藏助手
不良信息举报
您举报文章:[STL]对std::map的插入和查询操作
举报原因:
原因补充:

(最多只允许输入30个字)