C++ map的操作

C++中map的常用操作方法,通过代码的方法展现给初学者,希望能帮助到大家

#include <string>
#include <map>
#include <iostream>
using namespace std;

int main()
{
    map<int, string> mapStudent;
    //插入方法一
    mapStudent.insert(pair<int,string>(1, "student_1"));
    mapStudent.insert(pair<int,string>(2, "student_2"));
    mapStudent.insert(pair<int,string>(3, "student_3"));

    //插入方法二
    mapStudent.insert(map<int,string>::value_type(4, "student_4"));
    mapStudent.insert(map<int,string>::value_type(5, "student_5")); 
    mapStudent.insert(map<int,string>::value_type(6, "student_6")); 

    //插入方法三
    mapStudent[7] = "student_7";
    mapStudent[8] = "student_8";
    mapStudent[9] = "student_9";

    //插入方法四,可以判断是否插入成功
    pair<map<int, string>::iterator, bool> Insert_Par;
    Insert_Par = mapStudent.insert(pair<int, string>(10,"student_10"));
    if(Insert_Par.second == true)
        cout << "Insert Successfully" <<endl;
    else
        cout << "Insert failed" <<endl;

    //前向迭代器
    map<int, string>::iterator iter;
    for(iter = mapStudent.begin(); iter != mapStudent.end();iter++)
        cout << iter->first << ' '<< iter->second<<endl;

    //逆向迭代器
    map<int, string>::reverse_iterator iter1;
    for(iter1 = mapStudent.rbegin(); iter1 != mapStudent.rend();iter1++)
        cout << iter1->first << ' '<< iter1->second<<endl;

    //用数组的形式
    int nSize = mapStudent.size();
    for(int i = 1; i <= nSize; i++)
        cout << mapStudent[i]<<endl;

    //查找
    iter = mapStudent.find(7);
    if(iter != mapStudent.end())
        cout << "Find, the value is" << iter->second <<endl;

    //删除
    //通过key删除
    int res = mapStudent.erase(1);

    // 通过iterator删除
    iter = mapStudent.find(2);
    mapStudent.erase(iter);

    //再次遍历
    for(iter = mapStudent.begin(); iter != mapStudent.end();iter++)
        cout << iter->first << ' '<< iter->second<<endl;

    return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值