C++学习笔记之map键值对的修改
来源:互联网 发布:mac 炉石传说 插件 编辑:程序博客网 时间:2024/05/17 22:21
问题描述
如果map里面的值存放的是像,我们大可以直接将新的对象赋值给map,因为类里面一般提供了赋值函数,所以这样可以。
但是如果map里面存放的是常量,例如int,double,string,这样如何修改,我在网上查了很多,都说直接insert就会覆盖原来的值,是否这样?我们试试。
map<string, int> m_map; m_map.insert(make_pair("a1", 1));m_map.insert(make_pair("a2", 2));m_map.insert(make_pair("a3", 3)); m_map.insert(make_pair("a4", 4));m_map.insert(make_pair("a5", 5));m_map.insert(make_pair("a6", 6)); m_map.insert(make_pair("a7", 7));m_map.insert(make_pair("a8", 8));m_map.insert(make_pair("a9", 9)); m_map.insert(make_pair("a10", 10));m_map.insert(make_pair("a11", 11));m_map.insert(make_pair("a12", 12)); map<string, int>::const_iterator iteMap = m_map.begin(); for(; iteMap != m_map.end(); ++ iteMap) { cout << iteMap->second << endl; } cout << "==============旧值================================================================" << endl; m_map.insert(make_pair("a6", 120)); //m_map["a6"] = 120; //m_map["a13"] = 13; iteMap = m_map.begin(); for(; iteMap != m_map.end(); ++ iteMap) { cout << iteMap->second << endl; } cout << "==============新值================================================================" << endl;
截图如下:
我们似乎没有看到120的值出现,也就是说值根本没有覆盖,那么网上又为什么那么多人说这样可以呢?找了半天,原来那是在JAVA里面的说法,在C++里面不成立。正确的做法是这样的:
map<string, int> m_map; m_map.insert(make_pair("a1", 1));m_map.insert(make_pair("a2", 2));m_map.insert(make_pair("a3", 3)); m_map.insert(make_pair("a4", 4));m_map.insert(make_pair("a5", 5));m_map.insert(make_pair("a6", 6)); m_map.insert(make_pair("a7", 7));m_map.insert(make_pair("a8", 8));m_map.insert(make_pair("a9", 9)); m_map.insert(make_pair("a10", 10));m_map.insert(make_pair("a11", 11));m_map.insert(make_pair("a12", 12)); map<string, int>::const_iterator iteMap = m_map.begin(); for(; iteMap != m_map.end(); ++ iteMap) { cout << iteMap->second << endl; } cout << "==============旧值================================================================" << endl; //m_map.insert(make_pair("a6", 120)); m_map["a6"] = 120; m_map["a13"] = 13; iteMap = m_map.begin(); for(; iteMap != m_map.end(); ++ iteMap) { cout << iteMap->second << endl; } cout << "==============新值================================================================" << endl;
截图如下:
看到了吧,不仅120被插入到里面去了,连之前没有的13也被插入到了里面,可见数组形式进行操作确实很强大。
阅读全文
1 0
- C++学习笔记之map键值对的修改
- C实现键值对(Map功能)
- 对Map的键值对操作
- map的键值对的排序
- 利用map对键值的默认排序
- POJ2503 Babelfish(Map键值对的应用)
- java基础之对List,Map,Set等集合键值对的简单认识
- day07--Map键值对
- 解析Map键值对
- c++中如何关联两个变量的值-键值对,c++map的使用
- C++map遍历删除数据(删除被2整除的键值对)
- 获取Map中键值对的特殊方法——笔记
- Spark学习笔记-键值对操作
- Redis键值对数据库学习笔记
- C#__Dictionary类 __类似java Map 键值对
- C++学习:map(键值对)和set(集合)
- Spark学习之四-键值对操作
- c#Dictionary键值对的使用
- KM算法
- PCA主成分分析
- 存储过程(1)----开篇
- JS时间的计算,剩余时间的计算
- 【nowcoder】字符串参数解析
- C++学习笔记之map键值对的修改
- MSSQL注入之木马上传拿webshell
- 封装tap事件
- javaWeb的MVC思想解读
- python 中zip()函数
- 编写一个表达学生和课程关系的程序-Java描述
- git忽略已经被提交的文件
- chmod 777 修改权限
- linux fread 的返回值问题