pair常用操作 - STEMHA's Blog

pair常用操作

基本概念

pair

  • pair 是一个比较简单的模板类型,它只有两个 public 数据成员 first 和 second。
  • pair 对象可以封装任意类型的对象,可以生成任何想生成的 pair<T1,T2> 对象,可以是数组对象或者包含 pair<T1,T2> 的 vector 容器。例如,pair 可以封装两个序列容器或两个序列容器的指针。pair<T1,T2> 模板定义在 utility 头文件中,如果不想使用 map 而只想使用 pair 对象,可以包含这个头文件。

头文件

1
2
3
# include<utility>
或者
# include<map>

模板

1
pair<const K, T> q;

pair初始化方法

1
2
3
4
5
6
7
8
9
pair<int,int>q;       创建一个空对
pair<int,int>p(2,3); 创建一个对p,并分别赋值23
pair<int,int>s(p); 创建一个对s,拷贝p给s
pair<string, string> anon; // holds two strings
pair<string, int> word_count; // holds a string and an int
pair<string, vector<int> > line; // holds string and vector<int>

赋值利用make_pair函数
q = make_pair(1,2);

如果在创建 pair 对象时不提供初始化式,则调用默认构造函数对其成员采用值初始化。int初始化为0,string初始化为空;

交换

swap(pair<T1,T2>& other):和参数的元素进行交换,所包含对象的类型必须相同。:将当前 set 中的元素和参数 set 中的元素交换。它们需要包含相同类型的元素。也可以调用全局函数模板 swap() 来完成同样的操作。

1
2
template <class T1, class T2> void swap(pair<T1,T2> &x) 重载1:x.swap(y)
template <class T1, class T2> void swap (pair<T1,T2>& x, pair<T1,T2>& y) 重载2: swap(x, y)
1
2
3
std::pair<int,char> foo (10,'a');
std::pair<int,char> bar (90,'z');
swap (foo,bar);

常用操作

查找

1
2
3
4

访问pair内元素操作
q.first; 返回成员第一个数据
q.second; 返回成员第二个数据

比较

1
p1 == p2	如果两个 pair 对象的 first 和 second 成员依次相等,则这两个对象相等。该运算使用其元素的 == 操作符

中已经定义了pair上的六个比较运算符:<、>、<=、>=、==、!=,其规则是先比较first,first相等时再比较second,这符合大多数应用的逻辑

参考资料

STL之pair类型详细分析
C++ set初始化(STL set初始化)详解
C++标准库容器类概述

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×