对于修改C++指定key的value,网上查了很多,都说直接insert就会覆盖原来的值,是否是这样的呢?

 C++ Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
// mapmodifykey.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <map>
#include <string>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    map<string, int> m_map;
    m_map.insert(make_pair());
    m_map.insert(make_pair());
    m_map.insert(make_pair());
    m_map.insert(make_pair());
    map<string, int>::const_iterator iteMap = m_map.begin();
    cout << "==============旧值=============" << endl;
    for(; iteMap != m_map.end(); ++ iteMap)
    {
        cout << iteMap->first;
        cout << ":";
        cout << iteMap->second << endl;
    }
    m_map.insert(make_pair());
    //m_map["Kobe Bryant"] = 24;
    iteMap = m_map.begin();
    cout << "==============新值=============" << endl;
    for(; iteMap != m_map.end(); ++ iteMap)
    {
        cout << iteMap->first;
        cout << ":";
        cout << iteMap->second << endl;
    }
    ;
}

  看了半天,似乎并没有把key为Kobe Bryant的value修改为,还是之前的值。通过insert操作修改map指定key的value是不行的,正确的做法是这样的:

 C++ Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
// mapmodifykey.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <map>
#include <string>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    map<string, int> m_map;
    m_map.insert(make_pair());
    m_map.insert(make_pair());
    m_map.insert(make_pair());
    m_map.insert(make_pair());
    map<string, int>::const_iterator iteMap = m_map.begin();
    cout << "==============旧值=============" << endl;
    for(; iteMap != m_map.end(); ++ iteMap)
    {
        cout << iteMap->first;
        cout << ":";
        cout << iteMap->second << endl;
    }

//m_map.insert(make_pair("Kobe Bryant", 24));
;
    iteMap = m_map.begin();
    cout << "==============新值=============" << endl;
    for(; iteMap != m_map.end(); ++ iteMap)
    {
        cout << iteMap->first;
        cout << ":";
        cout << iteMap->second << endl;
    }
    ;
}

C++ map修改指定key的value的更多相关文章

  1. 修改Map中确定key对应的value问题

    今天在码代码的时候出现一个没有预料的问题: 先看下面的代码: public static void main(String[] args) { String[] files=new String[]{ ...

  2. 高效率遍历Map以及在循环过程中移除 remove指定key

    //高效率遍历Map以及在循环过程中移除 remove指定key //使用iter循环的时候 可以在循环中移除key,for在循环的过程中移除会报错哦 //本方法效率高 Iterator iter = ...

  3. C++ STL中Map的按Key排序和按Value排序

    map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区 分),我们用map来进 ...

  4. hadoop 指定 key value分隔符

    原文:http://wingmzy.iteye.com/blog/1260570 hadoop中的map-reduce是处理<key,value>这样的键值对,故指定<key,val ...

  5. C++ STL中Map的按Key排序跟按Value排序

    C++ STL中Map的按Key排序和按Value排序 map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定 ...

  6. SQLServer之修改FOREIGN KEY约束

    使用SSMS数据库管理工具修改FOREIGN KEY约束 1.连接数据库,选择数据表->右键点击->选择设计(或者展开键,选择要修改的外键,右键点击,选择修改,后面修改步骤相同). 2.在 ...

  7. Redis:解决分布式高并发修改同一个Key的问题

    本篇文章是通过watch(监控)+mutil(事务)实现应用于在分布式高并发处理等相关场景.下边先通过redis-cli.exe来测试多个线程修改时,遇到问题及解决问题. 高并发下修改同一个key遇到 ...

  8. C++ STL中Map的按Key排序

    为了实现快速查找,map内部本身就是按序存储的(比如红黑树).在我们插入<key, value>键值对时,就会按照key的大小顺序进行存储.这也是作为key的类型必须能够进行<运算比 ...

  9. map泛型 map不指定泛型 与 Map<Object,Object>的区别

    map泛型 map不指定泛型 与 Map<Object,Object>的区别 private void viewDetail(){ Map map1 = new HashMap(); Ma ...

随机推荐

  1. 一致Hash算法

    一致性哈希算法是分布式系统中经常使用的算法.比方,一个分布式的存储系统,要将数据存储到详细的节点上.假设採用普通的hash方法.将数据映射到详细的节点上,如key%N.key是数据的key.N是机器节 ...

  2. AP*更新供应商地点

    --更新供应商地点 PROCEDURE update_vendor_site(p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false, x_return ...

  3. axure rp 8.0

    授权人:University of Science and Technology of China (CLASSROOM) 授权密钥:DTXRAnPn1P65Rt0xB4eTQ+4bF5IUF0gu0 ...

  4. python --正则学习

    re的正则表达式语法    正则表达式语法表如下: re.match re.match 尝试从字符串的开始匹配一个模式,匹配成功返回match object,否则返回None. 如:下面的例子匹配第一 ...

  5. Mycat和MySQL的差别——Mycat的核心作用

    有个朋友面试的时候被问到:Mycat和MySQL的差别.我们能够把上层看作是对下层的抽象,比如操作系统是对各类计算机硬件的抽象.那么我们什么时候须要抽象?假如仅仅有一种硬件的时候,我们须要开发一个操作 ...

  6. 计算机的OSI和TCP/IP网络模型

    1.计算机的网络模型分为两种OSI模型和TCP/IP模型,它们的对应关系如下:   2.针对OSI模型,每一层都有各自的功能. 应用层 应用层是OSI模型中最靠近用户的一层,负责为用户的应用程序提供网 ...

  7. 统计重复字符串 如 eeefffkkkhjk 得到如下结果 3e3f3khjk;

    //统计重复字符串 如 eeefffkkkhjk 得到如下结果 3e3f3khjk; string zipStr = Console.ReadLine(); var charList = zipStr ...

  8. 架构设计--用户端全http参数接口详细说明v1

    1. 用户端全http参数接口详细说明v1.doc 1 2. change histor 1 3. 接口通用参数说明 1 4. 函数注册接口(规划中) 3 5. 用户权限模块 3 5.1. 用户注册接 ...

  9. Atitit. 构造ast 语法树的总结attilax oao

    Atitit. 构造ast 语法树的总结attilax oao 1. 能那更加有意义的名字来命名ast节点... 1 2. 如何命名表达式名称..使用实际对象名称,而不是操作符号表达式更好 1 2.1 ...

  10. cygwin 运行java的一些记录

    javac编译没问题,但是java执行就不行,处理方式如下 其实就是把宿主机下的java.exe在cygwin下搞一个快捷方式 关于路径问题,可以使用cygpath命令进行宿主机和cygwin间的转换 ...