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);

  • 相关阅读:
    InterlockedIncrement函数详解
    c#事件调用
    jdk-8u281-windows-x64.exe JavaSE开发包
    安卓SDK_installer_r24.4.1-windows
    c#中@符号作用
    c#winformAPI_MFC_API
    NFC上位机未发现RFID设备
    MFC隐藏到托盘双击还原_右键退出实现方法
    win10 win+R快捷指令启动程序汇总
    CAN总线调试---节点掉线问题
  • 原文地址:https://www.cnblogs.com/patrolli/p/11303548.html
Copyright © 2011-2022 走看看