zoukankan      html  css  js  c++  java
  • c++之map函数/迭代器

    参考文献:https://www.cnblogs.com/fnlingnzb-learner/p/5833051.html

    #include <iostream>
    #include <map>
    #include <string>
    using namespace std;
    
    int main()
    {
    //删除某个元素  erase():
        map<int, string> mapStu;
        mapStu.insert(map<int, string>::value_type(1, "stu1"));
        mapStu.insert(map<int, string>::value_type(2, "stu2"));
        mapStu.insert(pair<int, string>(3, "stu3"));
    
        map<int, string>::iterator itor;
        itor = mapStu.find(1);
    
        mapStu.erase(2);    //根据键值删除某个元素
        //mapStu.erase(itor);    //根据迭代器删除
        //mapStu.erase(mapStu.begin(), mapStu.end());    //删除一个范围内的
    
        for (itor = mapStu.begin(); itor != mapStu.end(); itor++)
            cout << itor->second <<endl;
    
    //find函数:传入的参数是要查找的key。
    //用find函数来定位数据出现位置,它返回的一个迭代器,当数据出现时,
    //它返回数据所在位置的迭代器,如果map中没有要查找的数据,它返回的迭代器等于end函数返回的迭代器。
    /*    map<int, string> mapStu;
        mapStu.insert(map<int, string>::value_type(1, "stu1"));
        mapStu.insert(map<int, string>::value_type(2, "stu2"));
        mapStu.insert(pair<int, string>(3, "stu3"));
    
        map<int, string>::iterator itor;
        itor = mapStu.find(3);
        if (itor != mapStu.end())
            cout << itor->second << endl;    //stu3
    
        itor = mapStu.lower_bound(1);
        if (itor != mapStu.end())
            cout << itor->second << endl;    //stu1
    
        itor = mapStu.upper_bound(1);
        if (itor != mapStu.end())
            cout << itor->second << endl;    //stu2
    
        itor = mapStu.lower_bound(2);
        if (itor != mapStu.end())
            cout << itor->second << endl;    //stu2
    
        itor = mapStu.upper_bound(2);
        if (itor != mapStu.end())
            cout << itor->second << endl;    //stu3
    
        pair<map<int, string>, map<int, string>> pairStu;
        pairStu = mapStu.equal_range(2);    //equal_range(2)
        if (pairStu.first == pairStu.second)
            cout << "不存在" << endl;
    */
    //数组形式遍历
        /*map<int, string> mapStu;
        mapStu.insert(map<int, string>::value_type(1, "stu1"));
        mapStu.insert(map<int, string>::value_type(2, "stu2"));
        mapStu.insert(pair<int, string>(3, "stu3"));
    
        int nsize = mapStu.size();
        for (int size = 1; size <= nsize; size++)
            cout << mapStu[size] << endl;*/
    
    //反向遍历
        //map<int, string> mapStu;
        //mapStu.insert(map<int, string>::value_type(1, "stu1"));
        //mapStu.insert(map<int, string>::value_type(2, "stu2"));
        //mapStu.insert(pair<int, string>(3, "stu3"));
        //pair<map<int, string>::iterator, bool> pair_insert;
    
        //pair_insert = mapStu.insert(pair<int, string>(3, "stu4"));
        //if (pair_insert.second == true)
        //    cout << "success" << endl;
        //else
        //    cout << "fail" << endl;
    
        //map<int, string>::reverse_iterator itor;
        //for (itor = mapStu.rbegin(); itor != mapStu.rend(); itor++)
        //    cout << itor->first << " " << itor->second << endl;
    
        //int size = mapStu.size();
        //cout << size << endl;
    
    
    //关于是否能够替换:数组方式2
        //map<int, string> mapStu;
        //mapStu.insert(map<int, string>::value_type(1, "stu1"));
        //mapStu.insert(map<int, string>::value_type(2, "stu2"));
        //mapStu.insert(pair<int, string>(3, "stu3"));
        //pair<map<int, string>::iterator, bool> pair_insert;
    
        //pair_insert = mapStu.insert(pair<int, string>(3, "stu4"));
        //if (pair_insert.second == true)
        //    cout << "success" << endl;
        //else
        //    cout << "fail" << endl;
    
        //map<int, string>::iterator itor;
        //for (itor = mapStu.begin(); itor != mapStu.end(); itor++)
        //    cout << itor->first << " " << itor->second <<endl;
    
        //int size = mapStu.size();
        //cout << size << endl;
    
    //关于是否能够替换:数组方式1
        //map<int, string> mapStu;
        //mapStu[1] = "stu0";
        //mapStu[2] = "stu1";
        //mapStu[3] = "stu2";
        //mapStu[3] = "stu3";        //输出替换了stu2
        //map<int, string>::iterator itor;
        //for (itor = mapStu.begin(); itor != mapStu.end(); itor++)
        //    cout << itor->second << endl;
    
    
    //方法3
        //map<int, string> mapStu;
        //mapStu[1] = "stu0";
        //mapStu[2] = "stu1";
        //mapStu[3] = "stu2";
        //map<int, string>::iterator itor;
        //for (itor = mapStu.begin(); itor != mapStu.end(); itor++)
        //    cout << itor->first << endl;
    
    
    //方法2
    //    map<int, string> mapStu;
    //    mapStu.insert(map<int,string>::value_type(1, "stu1"));    
    //    mapStu.insert(map<int,string>::value_type(2, "stu2"));
    //    mapStu.insert(map<int, string>::value_type(3, "stu3"));
    //    map<int, string>::iterator iter;
    //    for (iter = mapStu.begin(); iter != mapStu.end(); iter++)
    //        cout << iter->second << endl;
    
    //方法1
        /*map<int, string> mapStu;
        mapStu.insert(pair<int, string>(1, "stu1"));
        mapStu.insert(pair<int, string>(2, "stu2"));
        mapStu.insert(pair<int, string>(3, "stu3"));
    
        map<int, string>::iterator inter;
        for (inter = mapStu.begin(); inter != mapStu.end(); inter++)
            cout << inter->first << endl;*/
            
        system("pause");
        return 0;
    }
  • 相关阅读:
    5-把自己的系统刷到开发板
    4-构建网络文件系统
    ipc
    advio
    pthread
    signal
    process_control
    python3.6+selenium_Testsuits测试套件
    python3.6+selenium_多个测试用例
    jQuery的九类选择器
  • 原文地址:https://www.cnblogs.com/weiyouqing/p/9307758.html
Copyright © 2011-2022 走看看