介绍一下pair<int,int>的重载函数与操作
时间: 2023-08-21 22:23:50 浏览: 410
pair 是 STL 中的一个模板类,用于将两个值组成一个单元,常用于存储键值对等情况。pair 的定义如下:
```c++
template<class T1, class T2>
struct pair {
typedef T1 first_type;
typedef T2 second_type;
T1 first;
T2 second;
pair();
pair(const T1& x, const T2& y);
template<class U1, class U2>
pair(const pair<U1, U2>& p);
// ...
};
```
其中,first 和 second 分别表示 pair 的两个元素。pair 支持以下几种操作:
1. 构造函数
- 默认构造函数:构造一个空的 pair 对象。
```c++
pair<int, int> p;
```
- 拷贝构造函数:根据已有的 pair 对象创建一个新的 pair 对象。
```c++
pair<int, int> p1(1, 2);
pair<int, int> p2(p1);
```
- 通过 make_pair 函数创建 pair 对象。
```c++
pair<int, int> p = make_pair(1, 2);
```
这个函数会自动推导出 pair 的类型。
2. 重载运算符
- 赋值运算符:可以使用 = 运算符将一个 pair 对象赋值给另外一个 pair 对象。
```c++
pair<int, int> p1(1, 2);
pair<int, int> p2;
p2 = p1;
```
- 比较运算符:可以使用 ==、!=、<、<=、>、>= 运算符比较两个 pair 对象的大小。
```c++
pair<int, int> p1(1, 2);
pair<int, int> p2(2, 3);
if (p1 < p2) {
// ...
}
```
- 其他运算符:pair 对象支持一些其他的运算符,例如 +、-、*、/ 等运算符,但这些运算符的含义需要根据 pair 对象的具体类型来确定。
3. 成员函数
- swap 函数:可以交换两个 pair 对象的值。
```c++
pair<int, int> p1(1, 2);
pair<int, int> p2(2, 3);
p1.swap(p2);
```
- make_pair 函数:创建一个新的 pair 对象。
```c++
pair<int, int> p = make_pair(1, 2);
```
- 其他函数:pair 对象还支持一些其他的成员函数,例如 first、second、operator= 等函数,这些函数的作用请参考 STL 文档。
阅读全文