zoukankan      html  css  js  c++  java
  • stl.pair用法总结

    0 -- 内部类型定义
    template <class T1, class T2>
    struct pair
    {
        typedef T1 first_type;
        typedef T2 second_type;
        T1 first;
        T2 second;
        pair() : first(T1()), second(T2()) {}
        pair(const T1 & a, const T2 & b) : first(a), second(b) {}
        template <class U1, class U2>
        pair(const pair<u1, u2=""> & p) : first(p.first), second(p.second) {}
    };
    
    typedef T1 first_type first值域的元素类型
    typedef T2 second_type second值域的元素类型
    1 -- 构造函数
    pair()

    默认构造函数,要求T1和T2有默认的构造函数,并同时使用二者默认构造函数来构造容器。
    pair(const T1 & a, const T2 & b)

    构造pair。容器的first和second元素,分别使用a和b进行构造。
    template <class U1, class U2> pair(const pair<u1, u2=""> & p)

    构造pair。容器的first和second元素分别使用p.first和p.second进行构造。
    2 -- 元素值访问

    从pair的定义可知,它是个结构体。所以我们要访问pair容器的值。
    只需要直接引用p.first,指代第一个元素;直接引用p.second,指代第二个元素。

    3 -- 容器比较函数
    template <class T1, class T2>
    inline bool operator < (const pair<T1, T2> & x, const pair<T1, T2> & y)

    判断容器x是否小于y。该操作先判断x.first < y.first的关系,然后再判断x.second < y.second的关系。所以特别需要注意的是:T1和T2必须支持“<”操作符,否则编译报错。
    template <class T1, class T2>
    inline bool operator == (const pair<T1, T2> & x, const pair<T1, T2> & y)


    判断容器x是否小于y。该操作先判断x.first == y.first的关系,然后再判断x.second == y.second的关系。所以特别需要注意的是:T1和T2必须支持“==”操作符,否则编译报错。
    4 -- 容器赋值函数
    std::set<T1, T2> x;
    x.first  = ....; //给first元素赋值
    x.second = ....; //给second元素赋值
                
    最简单的赋值方法就是声明变量后,分别引用first和second对其赋值。
    template <class T1, class T2>
    inline pair<T1, T2> make_pair(const T1 & x, const T2 & y)

    该函数是个全局函数,非成员函数。等价于pair<t1, t2="">(x, y),用来生成一个pair变量。我们可以这么使用:
    std::set<int, int> a = std::make_pair(1, 2);
  • 相关阅读:
    Xshell配置ssh免密码登录-密钥公钥(Public key)与私钥(Private Key)登录
    bypass disable_function的方法及蚁剑插件bypass-php-function使用
    cisco-GNS3-pix防火墙基本配置实操(持续更新)
    "锁定文件失败 打不开磁盘或它所依赖的某个快照磁盘。模块启动失败。未能启动虚拟机"--解决方法
    python实现图片转字符画
    GNS3--cisco路由器NAT配置
    python虚拟环境----virtualenv
    防火墙----思科路由器基本配置1
    XXE漏洞学习1
    vc程序设计-----位图
  • 原文地址:https://www.cnblogs.com/motadou/p/1617279.html
Copyright © 2011-2022 走看看