前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >QPair使用

QPair使用

作者头像
Qt君
发布2019-09-02 16:41:08
2K0
发布2019-09-02 16:41:08
举报

QPair类是一个模板类,它存储一对项值(key,value)。

1.原型

QPair()
QPair(QPair<TT1, TT2> &&p)
QPair(const QPair<TT1, TT2> &p)
QPair(const T1 &value1, const T2 &value2)

2.可访问的成员变量

T1 first
T2 second

3.常用接口

  • 创建一对QPair项值
QPair<T1, T2> qMakePair(const T1 &value1, const T2 &value2)
  • 交换两个QPair项值
void swap(QPair<T1, T2> &other)
void swap(QPair<T1, T2> &lhs, QPair<T1, T2> &rhs)

等同于:

qSwap(this->first, other.first);
qSwap(this->second, other.second);
  • 赋值(=)操作
QPair<T1, T2> &operator=(const QPair<TT1, TT2> &p)
QPair<T1, T2> &operator=(QPair<TT1, TT2> &&p)
  • 比较操作 注意:先比较T1,如果相同则再比较T2。
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)
bool operator>=(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2)
  • 对流的支持 注意:需要对T1和T2实现重载>><<
QDataStream &operator>>(QDataStream &in, QPair<T1, T2> &pair)
QDataStream &operator<<(QDataStream &out, const QPair<T1, T2> &pair)

4.示例

/* 初始化QPair */
QPair<QString, double> pair("PI", 3.14);
/* 创建QPair列表 */
QList<QPair<QString, double> > pairList;
pairList.append(pair);
pairList.append(qMakePair(QString("E"), 2.71));

/* 遍历输出 */
for (QPair<QString, double> pair : pairList) {
    qDebug() << "Key: " << pair.first; // 获取第一个值
    qDebug() << "Value: " << pair.second; // 获取第二个值
}

输出:

Key:  "PI"
Value:  3.14
Key:  "E"
Value:  2.71

5.其他相关

  • 当QMap容器大小为1时,QMap与QPair功能基本相同;
  • QPair对应标准库模板类为std::pair
  • 类似的还有std::tuple(元组)数目不限制,而QPair和std::pair都限制为2。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Qt君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.原型
  • 2.可访问的成员变量
  • 3.常用接口
  • 4.示例
  • 5.其他相关
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档