Code Snippet : C++ map 映射容器的使用样例

#include <string>
#include <map>
#include <iostream>

int main(void)
{
    std::map<int,std::string> test_map;


    test_map[1] = "value1";
    test_map[2] = "value2";

    std::cout << "------ Test1: Read All -----" << std::endl;

    std::map<int, std::string>::iterator iter;

    for(iter = test_map.begin(); iter != test_map.end(); iter++)
    {
        std::cout << iter->first << ":" << iter->second << std::endl;
    }

    std::cout << "------ Test2: Insert Value pair -----" << std::endl;

    test_map.insert(std::pair<int,std::string>(3,"value3"));

    for(iter = test_map.begin(); iter != test_map.end(); iter++)
    {
        std::cout << iter->first << ":" << iter->second << std::endl;
    }

    std::cout << "------ Test2: Insert Value  map:value_type -----" << std::endl;

    test_map.insert(std::map<int, std::string>::value_type (4,"value4"));

    for(iter = test_map.begin(); iter != test_map.end(); iter++)
    {
        std::cout << iter->first << ":" << iter->second << std::endl;
    }

    std::cout << "------ Test2: Insert Value array[]  -----" << std::endl;

    test_map.insert(std::map<int, std::string>::value_type (6,"value6"));

    for(iter = test_map.begin(); iter != test_map.end(); iter++)
    {
        std::cout << iter->first << ":" << iter->second << std::endl;
    }

    std::cout << "------ Test2: Insert Value array[] override -----" << std::endl;

    test_map.insert(std::map<int, std::string>::value_type (6,"value7"));

    for(iter = test_map.begin(); iter != test_map.end(); iter++)
    {
        std::cout << iter->first << ":" << iter->second << std::endl;
    }

    std::cout << "------ Test3: Find Value -----" << std::endl;

    int a = 5;

    iter = test_map.find(a);

    if(iter == test_map.end())
    {
        std::cout << "Sorry," << a << " not found" << std::endl;
    }else
    {
        std::cout << "Found," << iter->first << ":" << iter->second << std::endl;
    }

    std::cout << "------ Test4: Erase Value -----" << std::endl;

    test_map.erase(4);

    for(iter = test_map.begin(); iter != test_map.end(); iter++)
    {
        std::cout << iter->first << ":" << iter->second << std::endl;
    }

    std::cout << "------ Test5: Check Insert Result fail -----" << std::endl;

    std::pair<std::map<int,std::string>::iterator,bool> result = test_map.insert(std::pair<int,std::string>(1,"override_value1"));

    std::cout << "result is " << result.second << std::endl;

    for(iter = test_map.begin(); iter != test_map.end(); iter++)
    {
        std::cout << iter->first << ":" << iter->second << std::endl;
    }

    std::cout << "------ Test5: Check Insert Result success -----" << std::endl;

    result = test_map.insert(std::pair<int,std::string>(7,"value7"));

    std::cout << "result is " << result.second << std::endl;

    for(iter = test_map.begin(); iter != test_map.end(); iter++)
    {
        std::cout << iter->first << ":" << iter->second << std::endl;
    }


    std::cout << "------ Test End -----" << std::endl;

    return 0;
}

运行结果

------ Test1: Read All -----
1:value1
2:value2
------ Test2: Insert Value pair -----
1:value1
2:value2
3:value3
------ Test2: Insert Value  map:value_type -----
1:value1
2:value2
3:value3
4:value4
------ Test2: Insert Value array[]  -----
1:value1
2:value2
3:value3
4:value4
6:value6
------ Test2: Insert Value array[] override -----
1:value1
2:value2
3:value3
4:value4
6:value6
------ Test3: Find Value -----
Sorry,5 not found
------ Test4: Erase Value -----
1:value1
2:value2
3:value3
6:value6
------ Test5: Check Insert Result fail -----
result is 0
1:value1
2:value2
3:value3
6:value6
------ Test5: Check Insert Result success -----
result is 1
1:value1
2:value2
3:value3
6:value6
7:value7
------ Test End -----

 参考文献

[1]. 史上最全的各种C++ STL容器全解析 - osc_ywuazj5t的个人空间 - OSCHINA

[2]. C++中的STL中map用法详解 - Boblim - 博客园

[3]. C++ STL map容器迭代器用法详解

 

 

 

posted @ 2020-07-18 11:31  缘起花渊  阅读(173)  评论(0编辑  收藏  举报