c++STL pair的基本用法

本文通过示例代码展示了如何使用C++标准库中的pair结构体来构造不同形式的pair对象,包括直接初始化成员、构造函数初始化以及利用make_pair函数进行初始化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文提供构造pair的三种简单方法的例子

#include <iostream>
using namespace std;
int main() {
  pair<int, int> a;
  a.first = 0;
  a.second = 1;
  pair<int, int> b(1, 2);
  pair<int, int> c;
  c = make_pair(2,3);
  cout  << a.first << " " << a.second << endl;
  cout  << b.first << " " << b.second << endl;
  cout  << c.first << " " << c.second << endl;
}
### C++ STL 中 `pair` 的用法C++ 标准模板库(STL)中,`std::pair` 是一种用于存储两个不同类型的数据的容器。它通常被用来表示键值对,在关联式容器如 `map` 和 `multimap` 中非常有用。 #### 创建和初始化 `pair` 可以使用多种方式创建并初始化一对: ```cpp #include <utility> // std::pair, std::make_pair using namespace std; // 使用默认构造函数 pair<int, string> p1; p1.first = 42; p1.second = "hello"; // 构造时赋初值 pair<double, char> p2(3.14, 'A'); // 利用 make_pair 函数简化语法 auto p3 = make_pair('B', 7); ``` #### 访问成员变量 每一对有两个公共成员变量:`.first` 和 `.second`,分别代表第一个和第二个元素。 ```cpp cout << "First element of p2 is: " << p2.first << endl; // 输出 3.14 cout << "Second element of p2 is: " << p2.second << endl; // 输出 A ``` #### 比较操作符重载 为了方便比较两对之间的关系,标准库已经为它们定义了一系列的关系运算符 (`==`, `<`, etc.)。这些比较基于字典序原则执行。 ```cpp if (p2 < p3) { cout << "(d,c) pair less than (c,i) pair." << endl; } ``` #### 应用场景实例 当需要返回多个值或传递一组参数给另一个函数时,`pair` 就显得特别有用了。下面是一个简单的例子展示如何利用 `pair` 来实现这一点: ```cpp pair<bool, int> divide(int a, int b){ if(b != 0) return {true, a / b}; else return {false, 0}; } int main(){ auto result = divide(10, 2); if(result.first) cout << "Result was successful: " << result.second << endl; else cerr << "Division by zero error!" << endl; return 0; } ``` 通过上述代码片段可以看出,`pair` 提供了一种简洁而有效的方式来处理成双出现的数据项[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值