map

来源:互联网 发布:曼秀雷敦护手霜 知乎 编辑:程序博客网 时间:2024/06/03 21:36

map介绍


  • 使用map得包含map类所在的头文件
#include <map>
  • 定义一个map对象:
map<string,int> mapTest; //用string作为索引,存储int对象 <key,value>

插入数据

1. mapTest["aaa"] = 100;2. mapTest.insert(map<string,int>::value_type("bbb",200));3. mapTest.insert(pair<string,int>("ddd",400));4. mapTest.insert(make_pair<string,int>("ccc",300));

插入到map容器内部的元素默认是按照key从小到大来排序
这就要求key运算符一定要重载‘<’运算符

int main(void){    map<string, int> mapTest;     mapTest["aaa"] = 100;    mapTest["aaa"] = 1000;       //!<中括号可以更新value的值    mapTest["eee"] = 500;    mapTest.insert(map<string, int>::value_type("bbb", 200));    mapTest.insert(map<string, int>::value_type("bbb", 2000)); //!<不允许插入    mapTest.insert(pair<string, int>("ddd", 400));    mapTest.insert(pair<string, int>("ddd", 4000));            //!<不允许插入    mapTest.insert(make_pair<string, int>("ccc", 300));    mapTest.insert(make_pair<string, int>("ccc", 3000));       //!<不允许插入    map<string, int>::const_iterator it;    for (it = mapTest.begin(); it != mapTest.end(); ++it)    {        cout << it->first << '\t' << it->second << endl;    }    return 0;}

输出结果:
这里写图片描述

查找与修改

1. mapTest["aaa"] = 100;2. map<string,int>::iterator it = mapTest.find("aaa");3. it->second = 666;
int main(void){    map<string, int> mapTest;    mapTest["aaa"] = 100;    mapTest.insert(map<string, int>::value_type("bbb", 200));    mapTest.insert(pair<string, int>("ddd", 400));    mapTest.insert(make_pair<string, int>("ccc", 300));    int n = mapTest["bbb"];    //访问bbb所对应的值    mapTest["bbb"] = 2000;     //修改bbb所对应的值    map<string, int>::iterator it;    it = mapTest.find("ccc");  //查找索引ccc    if (it != mapTest.end())   //找到了索引ccc    {        it->second = 3000;    }    else                       //未找到索引ccc    {        cout << "not found" << endl;    }    for (it = mapTest.begin(); it != mapTest.end(); ++it)    {        cout << it->first << '\t' << it->second << endl;    }    return 0;}

输出结果:
这里写图片描述

删除


1. mapTest.erase("aaa");2. mapTest.erase(it);

int main(void){    map<string, int> mapTest;    mapTest["aaa"] = 100;    mapTest.insert(map<string, int>::value_type("bbb", 200));    mapTest.insert(pair<string, int>("ddd", 400));    mapTest.insert(make_pair<string, int>("ccc", 300));    mapTest.erase("bbb");    map<string, int>::iterator it;    it = mapTest.find("ccc");    if (it != mapTest.end())    {        mapTest.erase(it);    }    for (it = mapTest.begin(); it != mapTest.end(); ++it)    {        cout << it->first << '\t' << it->second << endl;    }    return 0;}

输出结果:
这里写图片描述

0 0
原创粉丝点击