C++ 日常記錄 std::pair

std::pair

template <class T1, class T2> struct pair;
此類將一對值(可能是不同類型)結合在一起(T1 和 T2)。可以通過其公共成員訪問各個值

Member variables(成員變量)

first: pair中的第一個值
second: pair中的第二個值

相關函數

swap()

交換兩個pari 的內容

#include <iostream>
using namespace std;
int main()
{
	std::pair<int,char> f1(10,'a');
	std::pair<int,char> f2(12,'b');
	f1.swap(f2);
	cout<<f1.first<<endl;
	cout<<f1.second<<endl;
	return 0;
}	

在這裏插入圖片描述

make_pair(T1 x,T2 y)

構造一個 pair對象,其第一個元素設置爲x,第二個元素設置爲y。

#include <utility>      // std::pair
#include <iostream>     // std::cout

int main () {
  std::pair <int,int> foo;
  std::pair <int,int> bar;

  foo = std::make_pair (10,20);
  bar = std::make_pair (10.5,'A'); 

  std::cout << "foo: " << foo.first << ", " << foo.second << '\n';
  std::cout << "bar: " << bar.first << ", " << bar.second << '\n';

  return 0;
}

在這裏插入圖片描述

排序

#include <iostream>
#include <vector>
#include<algorithm>
using namespace std;
int main()
{	
	std::vector<pair<int,int>> p;
	p.push_back(make_pair(2,1));
	p.push_back(make_pair(100,2));
	p.push_back(make_pair(21,3));
	p.push_back(make_pair(12,4));
	sort(p.begin(),p.end(),greater<pair<int,int>>());
	for(int i = 0;i<p.size();i++)
	{
		cout<<p[i].first<<","<<p[i].second<<endl;
	}
	return 0;
}		

可以看出默認是按照 first 排序的。
在這裏插入圖片描述

參考鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章