zoukankan      html  css  js  c++  java
  • C++ pair的使用

    定义:

    pair定义在头文件utility中,它可以保存两个数据成员,这两个数据成员类型可以不相同。

    初始化

    • 默认构造:std::pair<std::string, double> product1;
    • 值初始化:std::pair<std::string, double> product2("tomatoes", 2.30);
    • 复制初始化:std::pair<std::string, double> product3(product);
    • 使用make_pair: product1 = std::make_pair(std::string("light"), 0.99);
    • 列表初始化:pair<T1, T2>p = {v1, v2};

    访问

    p.first:访问名为first的(公有)数据成员(即T1

    p.second:访问名为second的(公有)数据成员(即T2

    get():

    ```cpp
    	std::pair<int, char> foo(10, 'x');
    	std::get<0>(foo) = 50; //get<I>, I为0时返回first的引用,为1时返回second的引用
    	std::out << "foo contains: ";
    	std::out << "std::get<0>(foo) << " and " << std::get<1>(foo) << "
    ";
    ```
    

    其他操作

    • 比较:

      p1 relop p2: 关系运算符(<, >, <=, >=)按字典序定义: 如:当p1.first < p2.first!(p2.first < p1.first) && (p1.second < p2.second)成立时,p1 < p2true。关系运算符利用元素的<运算符来实现。

      p1 == p2p1 != p2firstsecond成员分别相等时,两个pair相等。相等性用元素的==运算符实现

    • 交换:

      成员函数版:
      cpp std::pair<int, char> foo(10, 'a'); std::pair<int, char> bar(90, 'z'); foo.swap(bar);
      非成员函数版:
      cpp std::pair<int, char> foo(10, 'a'); std::pair<int, char> bar(90, 'z'); swap(foo, bar);

  • 相关阅读:
    C#等同于正则表达式的写法
    操作XML
    对比工具集合
    IIS 部署的网站无法启动
    jdk_1.8 下载之后的配置
    sql server 2008认识 DENSE_RANK
    c# 二分查找算法
    c# 使用栈实现有效的括号
    sql server 自定义标量函数
    虚拟机cenos 重置密码
  • 原文地址:https://www.cnblogs.com/patrolli/p/11303548.html
Copyright © 2011-2022 走看看