OI学习笔记 - C++附加的STL容器
1. pair
的使用
1.1 特点与适用场景
- 特点:
pair
是 C++ 标准库中的一个模板类,用于存储两个不同类型的数据它提供了快速访问两个元素的接口 - 适用场景: 当需要同时存储两个相关数据时,比如键值对、二维点坐标、或者需要按某个字段排序时
1.2 典型操作
- 定义:
pair<Type1, Type2> p;
- 初始化:
pair<int, int> p(1, 2);
或auto p = make_pair(1, 2);
- 访问元素:
p.first
和p.second
- 排序:
pair
默认按first
排序,first
相同时按second
排序
1.3 使用实例
1 |
|
输出: 1
2
31 banana
2 cherry
3 apple
2. tuple
的使用
2.1 特点与适用场景
- 特点:
tuple
是pair
的扩展,可以存储多个不同类型的元素它提供了灵活的多字段存储能力 - 适用场景: 当需要存储多个相关数据时,比如存储学生信息(姓名、年龄、成绩)
2.2 典型操作
- 定义:
tuple<Type1, Type2, ..., Typen> t;
- 初始化:
tuple<int, int, int> t(1, 2, 3);
或auto t = make_tuple(1, 2, 3);
- 访问元素:
get<0>(t)
、get<1>(t)
等
2.3 使用实例
1 |
|
输出: 1
2
33 1 5
1 2 4
2 3 6
3. 总结
pair
: 适合存储两个相关数据,常用于排序、映射等场景tuple
: 适合存储多个相关数据,提供了更大的灵活性- 在信息学竞赛中,
pair
更常用,尤其是需要按某个字段排序时而tuple
在需要存储多字段数据时非常方便,但使用频率相对较低掌握它们的基本操作和适用场景,可以显著提高代码的简洁性和效率