c/c++ 标准库 pair 详细讲解及使用实例分析

时间:2018-09-22
本文章向大家介绍c/c++ 标准库 pair 详细讲解及使用实例分析,需要的朋友可以参考一下

标准库 pair 介绍

问题:map里的元素由key和value组成,这个key和value的组合是什么类型呢???

答案:pair类型

pair介绍:

  • 它是模板
  • 有2个公有成员可供访问。 first和second。
  • make_pair函数能返回一个pair
  • 可以进行 ==,!=,<=,<, >, >=运算
//由参数1和2推导出类型为<int, int>                                     
auto ap1 = make_pair(1, 2);
pair<int, int> ap2(ap1);

小例子:

#include <iostream>
#include <vector>

using namespace std;

pair<string, int> process(vector<string> &v){
  if(!v.empty()){
    return pair<string, int>(v.back(), v.back().size());
  }
  else{
    return pair<string, int>();
  }
}
int main(){
  pair<string, string> p1{"",""};
  pair<string, size_t> cnt{"last",5};
  pair<string, vector<int>> li;
  cout << cnt.first << " " << cnt.second << endl;
  vector<string> svec{"aa", "last"};
  pair<string, size_t> cnt2 = process(svec);
  cout << cnt2.first << " " << cnt2.second << endl;
  if(cnt2 == cnt){
    cout << "euqal" << endl;
  }
  if(cnt2 < cnt){
    cout << "less" << endl;
  }
  //由参数1和2推导出类型为<int, int>                                           
  auto ap1 = make_pair(1, 2);
  pair<int, int> ap2(ap1);
}