标准库 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);
}

 

收藏 打印