C++_pair
简介:pair是将2个数据组合成一组数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。 pair的实现是一个结构体,主要的两个成员变量是first second 因为是使用struct不是class,所以可以直接使用pair的成员变量。
就算其他的语言中没有pair,比如java与c语言,也可以自己理解原理之后,通过结构体自己做一个。
定义方法:
#include <iostream>
using namespace std;
int main()
{
pair<char ,int> p; // pair<T, T>定义看起来很简单,T代表的是通用模板类,可以是char,int,string,vector<int>等等
p = {'c', 330}; // 给pair赋值的方法
cout << p.first << " " << p.second; // pair有两个成员变量,first与second
return 0;
}
运行结果:
特殊例子:
#include <iostream>
#include<vector>
using namespace std;
int main()
{
pair<string, vector<int> > p;
vector<int> v(10, 1);
p = {"123", v};
cout << p.first << endl;
// 如果pair中的一个参数是容器,应该怎么访问
for (int i = 0; i < p.second.size(); ++ i)
{
cout << p.second[i]<< endl;
}
return 0;
}
运行结果:
自定义pair:
#include <iostream>
#include<vector>
using namespace std;
template<class K, class T>
class Pair{
public:
// 有参数和无参构造方法都要写
Pair(){
}
public:
T first;
public:
T second;
};
int main()
{
Pair<int, int> p;
p.first = 1;
p.second = 2;
cout << p.first << " " << p.second << endl;
return 0;
}
运行结果: