• boost容器bimap简单使用


        C++标准提供了map和multi_map,把key映射到value;
        但是这种映射是单向的,只能是key到value,不能反过来;
        boost.bimap扩展了标准库映射型容器,提供双向映射能力,功能强大;
        bimap提供的映射关系有两个视图:左视图和右视图;
        更多详细用法请参考《Boost程序库完全开发指南》

     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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    /* boost_bimap.cpp
        C++标准提供了map和multi_map,把key映射到value;
        但是这种映射是单向的,只能是key到value,不能反过来;
        boost.bimap扩展了标准库映射型容器,提供双向映射能力,功能强大;
        bimap提供的映射关系有两个视图:左视图和右视图;
        更多详细用法请参考《Boost程序库完全开发指南》
    */


    #include <iostream>
    #include <string>
    #include <vector>
    #include <cassert>

    #include <boost/bimap.hpp>
    #include <boost/typeof/typeof.hpp> 

    using namespace std;
    using namespace boost;

    template<class T>  
    void print_map(T &m)  
    {   
        
    for (BOOST_AUTO(pos, m.begin()); pos!=m.end(); ++pos)  
        {  
            cout << pos->first << 
    "--------" << pos->second << endl;  
        }  
    }  

    int main(void)
    {
        bimap<
    int, string> bm;

        bm.left.insert(make_pair(
    1"Zhang"));
        bm.left.insert(make_pair(
    2"Wang"));

        
    for(BOOST_AUTO(pos, bm.left.begin()); 
            pos != bm.left.end();
            ++pos)
        {
            cout << 
    "Left[" << pos->first << "]=" << pos->second << endl; 
        }

        bm.right.insert(make_pair(
    "Li"23));
        bm.right.insert(make_pair(
    "Sun"24));

        
    for(BOOST_AUTO(pos, bm.left.begin()); 
            pos != bm.left.end();
            ++pos)
        {
            cout << 
    "Right[" << pos->first << "]=" << pos->second << endl; 
        }

        print_map(bm.left);
        print_map(bm.right);

        cin.get();
        
    return 0;
    }


  • 相关阅读:
    出现“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”的解决方法
    angular中的:class的使用
    Vue中的:class的使用
    audio 音乐自动播放,循环播放,隐藏等
    vue放大缩小视图窗口按钮
    js获取显示器、页面等高度 (转)
    在 vue 中添加错误与成功提示的代码段
    在 vue 中添加初始化代码段
    学习react基本语法初始化webpack.pub.config.js
    学习react基本语法初始化webpack.config.js
  • 原文地址:https://www.cnblogs.com/MakeView660/p/7149023.html
Copyright © 2020-2023  润新知