什么是pair?
Pair是一个英语单词,意思是“一对”、“成对”、“配对”。在生活中,我们经常会遇到pair这个词,比如一双鞋、一对耳环、一对情侣等等。在计算机科学中,pair也是一个常用的数据结构,用来存储两个不同类型的值。
Pair在编程中的应用
在编程中,pair通常用来存储两个不同类型的值,比如一个整数和一个字符串,一个浮点数和一个布尔值等等。我们可以使用pair来表示一个点的坐标,一个日期的年月日等等。在C++中,pair是一个模板类,定义如下:
templatestruct pair { typedef T1 first_type; typedef T2 second_type; first_type first; second_type second; // constructors pair(); pair(const first_type& x, const second_type& y); template pair(const pair& p); };
使用pair存储多个值
有时候我们需要存储多个值,但是又不想定义一个新的数据结构,这时候可以使用pair来存储多个值。比如我们要统计一个字符串中每个字符出现的次数,可以使用如下代码:
#include <iostream>
#include <string>
#include <map>
using namespace std;
int main() {
string s = "hello world";
map<char, int> cnt;
for (auto c : s) {
cnt[c]++;
}
for (auto p : cnt) {
cout << p.first << ": " << p.second << endl;
}
return 0;
}
上面的代码使用了map来存储每个字符出现的次数,但是我们也可以使用pair来存储,代码如下:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
string s = "hello world";
vector<pair<char, int>> cnt(26);
for (auto c : s) {
cnt[c - 'a'].first = c;
cnt[c - 'a'].second++;
}
for (auto p : cnt) {
if (p.second > 0) {
cout << p.first << ": " << p.second << endl;
}
}
return 0;
}
小结
在编程中,pair是一个非常有用的数据结构,可以用来存储两个不同类型的值。我们可以使用pair来表示一个点的坐标,一个日期的年月日等等。在一些场景下,我们也可以使用pair来存储多个值,比如统计一个字符串中每个字符出现的次数。
