QPair类是一个模板类,它存储一对项值(key,value)。
1.原型
1 | QPair() |
2.可访问的成员变量
1 | T1 first |
3.常用接口
创建一对QPair项值
1
QPair<T1, T2> qMakePair(const T1 &value1, const T2 &value2)
交换两个QPair项值
1
2void swap(QPair<T1, T2> &other)
void swap(QPair<T1, T2> &lhs, QPair<T1, T2> &rhs)
等同于:1
2qSwap(this->first, other.first);
qSwap(this->second, other.second);
赋值(
=
)操作1
2QPair<T1, T2> &operator=(const QPair<TT1, TT2> &p)
QPair<T1, T2> &operator=(QPair<TT1, TT2> &&p)比较操作
注意:先比较T1,如果相同则再比较T2。1
2
3
4
5
6bool operator!=(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2)
bool operator<(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2)
bool operator<=(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2)
bool operator==(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2)
bool operator>(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2)
bool operator>=(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2)对流的支持
注意:需要对T1和T2实现重载>>
和<<
。1
2QDataStream &operator>>(QDataStream &in, QPair<T1, T2> &pair)
QDataStream &operator<<(QDataStream &out, const QPair<T1, T2> &pair)
4.示例
1 | /* 初始化QPair */ |
输出:1
2
3
4Key: "PI"
Value: 3.14
Key: "E"
Value: 2.71
5.其他相关
- 当QMap容器大小为1时,QMap与QPair功能基本相同;
- QPair对应标准库模板类为
std::pair
; - 类似的还有
std::tuple
(元组)数目不限制,而QPair和std::pair都限制为2。
6.关于更多
- Qt君公众号后台回复”Qt容器“获取更多相关内容。