zoukankan      html  css  js  c++  java
  • 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;
    }


  • 相关阅读:
    NKOJ P3051浇花
    Linux-Shell脚本编程-学习-2-Linux基本命令
    Linux-Shell脚本编程-学习-1-Linux基本命令
    Ubuntu下使用Git_6
    Ubuntu下使用Git_5
    电脑优化,提速
    Ubuntu下使用Git_4
    Ubuntu下使用Git_3
    Ubuntu下使用Git_2
    Ubuntu下使用Git_1
  • 原文地址:https://www.cnblogs.com/MakeView660/p/7149023.html
Copyright © 2011-2022 走看看