#include <utility>
阿新 • • 發佈:2017-09-21
vps 模板類 iostream spa utili class return 操作符 復制
#include <utility>這個頭文件是什麽用法
utility頭文件定義了一個pair類型,是標準庫的一部分,其原型為:
template<class _Ty1,
class _Ty2> struct pair
{ // store a pair of values
typedef pair<_Ty1, _Ty2> _Myt;
typedef _Ty1 first_type;
typedef _Ty2 second_type;
pair()
: first(_Ty1()), second(_Ty2())
{ // construct from defaults
}
pair(const _Ty1& _Val1, const _Ty2& _Val2)
: first(_Val1), second(_Val2)
{ // construct from specified values
}
template<class _Other1,
class _Other2>
pair(const pair<_Other1, _Other2>& _Right)
: first(_Right.first), second(_Right.second)
{ // construct from compatible pair
}
void swap(_Myt& _Right)
{ // exchange contents with _Right
if (this != &_Right)
{ // different, worth swapping
std::swap(first, _Right.first);
std::swap(second, _Right.second);
}
}
_Ty1 first; // the first stored value
_Ty2 second; // the second stored value
};
可以看出這是一個模板類,定義了兩個數據成員:first、second和一組成員函數。
有兩個普通構造函數和一個復制構造函數,具體的還定義了一個make_pair函數和一些操作符,
函數的實現你可以看看標準庫的utility頭文件。另外,map的元素類型就是pair類型~
例子
#include <iostream>
#include <utility>
using namespace std;
pair<int, int> p;
int main()
{
cin >> p.first >> p.second;
cout << p.first << " " << p.second << endl;
return 0;
}
#include <utility>