Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2502|回复: 8
打印 上一主题 下一主题

Qt常见容器使用

[复制链接]

165

主题

269

帖子

957

积分

认证用户组

Rank: 5Rank: 5

积分
957
楼主
发表于 2016-12-30 18:20:55 | 显示全部楼层
QMap 删除元素
  1. for (auto it = map.begin(); it != map.end(); /* don't increment here */) {
  2.     if (it.value() % 2 == 1) {
  3.         it = map.erase(it);
  4.     } else {
  5.         ++it;
  6.     }
  7. }
复制代码
回复 支持 反对

使用道具 举报

165

主题

269

帖子

957

积分

认证用户组

Rank: 5Rank: 5

积分
957
沙发
发表于 2017-1-3 11:14:47 | 显示全部楼层
QMap添加
  1. bool CMemoryDBManager::addMailRecord(MailHeaderInfo&  stMailInfo)
  2. {
  3.     QMutexLocker locker(&m_mailMutex);
  4.     m_mapMailMemoryData[stMailInfo.folderId].vecMailIndexDatas.push_back(stMailInfo);
  5.     regenerateMailListModelData();
  6.     return true;
  7. }
复制代码
回复 支持 反对

使用道具 举报

165

主题

269

帖子

957

积分

认证用户组

Rank: 5Rank: 5

积分
957
板凳
发表于 2017-1-5 17:13:27 | 显示全部楼层
  1. bool  CMemoryDBManager::delMailIndex(uint32_t folderId, const QString & uid)
  2. {
  3.     QMutexLocker locker(&m_mailIndexMutex);
  4.     for (int i = 0; i < m_mapMailIndexData[folderId].vecSyncMailIndexs.size(); ++i) {
  5.         if (m_mapMailIndexData[folderId].vecSyncMailIndexs.at(i).uid == uid)
  6.         {
  7.             m_mapMailIndexData[folderId].vecSyncMailIndexs.removeAt(i);
  8.             return true;
  9.         }
  10.     }
  11.     return false;
  12. }
复制代码
回复 支持 反对

使用道具 举报

165

主题

269

帖子

957

积分

认证用户组

Rank: 5Rank: 5

积分
957
地板
发表于 2017-1-10 17:11:04 | 显示全部楼层
QList查询 find
  1. QList<SyncMailIndexInfo>::const_iterator itFind = qFind(m_mapMailIndexData[folderId].vecSyncMailIndexs.begin(), m_mapMailIndexData[folderId].vecSyncMailIndexs.end(), stSyncMailIndexInfo);
  2.     if (itFind == m_mapMailIndexData[folderId].vecSyncMailIndexs.end())
  3.     {
  4.         return false;
  5.     }
  6.     return true;


  7. struct SyncMailIndexInfo
  8. {
  9.     SyncMailIndexInfo()
  10.     : indexPop(DEFAULT_VALUE_ZERO)
  11.     , flags(DEFAULT_VALUE_ZERO)
  12.     , date(NOT_SET_VALUE)
  13.     , operType(IOT_ADD)
  14.     {
  15.     }

  16.     QString uid; //exchange id
  17.     uint32_t indexPop; //兼容 pop
  18.     uint32_t flags;
  19.     uint64_t date;
  20.     IndexOperType operType;
  21.     bool operator == (const SyncMailIndexInfo& rhs) const {
  22.         return (uid == rhs.uid && operType == rhs.operType);
  23.     }
  24. };
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-5-3 16:33 , Processed in 0.056105 second(s), 17 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表