STL (C++)-STL中对 pair 进行操作

前端开发 前端开发 主题:1148 回复:2395

STL (C++)-STL中对 pair 进行操作

瑾兮 发布于 2017-09-15 字数 150 浏览 1167 回复 5

STL 中 pair 是一个对组类,可以这样使用:

pair<calss first,calss second>(first,second)

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(5

想挽留 2017-10-24 5 楼

是的,因为pair在进行比较的时候会调用元素的相应的操作符

甜柠檬 2017-10-16 4 楼

是的,自定义的类需要自己定义比较函数,可以以类中某个成员变量的大小为比较的标准

虐人心 2017-10-11 3 楼

pair类型的两个参数是一个键值对,如果类型参数是内置类型,可以直接比较,如果是自定义类型,需要重载<操作符。

甜柠檬 2017-10-02 2 楼

下面是pair类的定义:
template <class T1, class T2> struct pair
{
typedef T1 first_type;
typedef T2 second_type;

T1 first;
T2 second;
pair() : first(T1()), second(T2()) {}
pair(const T1& x, const T2& y) : first(x), second(y) {}
template <class U, class V>
pair (const pair<U,V> &p) : first(p.first), second(p.second) { }
}

Members
first_type, second_type
Alises of template parameters T1 and T2 respectively.
first, second
Data members containing the first and second values stored in the pair.
pair()
Constructs a pair object with each of its members first and second constructed with their respective default constructors.
pair(const T1& x, const T2& y)
Constructs a pair object with its members first and second initialized to x and y, respectively.
template <class U, class V> pair (const pair<U,V> &p)
Constructs a pair object with its members first and second initialized to the corresponding elements in p, which must be of any couple of implicitly-convertible types (including the same types).

来源于:http://www.cnblogs.com/ffhajbq/archive/2012/06/26/2564076.html
希望能有所帮助。

甜柠檬 2017-09-17 1 楼

对 你的类必须支持 那些操作符 pair才能完成 你想要的比较

重载是必不可少的
想要使用那些操作符 就先在你的类中重载操作符 然后 在你需要比较pair类的时候她会调用你自己的类!!