使用reverse_iterator迭代器实现STL容器的反向遍历
来源:互联网 发布:应聘淘宝美工自我介绍 编辑:程序博客网 时间:2024/06/14 19:46
STL中诸如vector、list等容器,使用起来安全、稳定、高效,给我们的日常开发带来了很多的便捷。某些时候因为一些特殊的需要,我们需要反向遍历容器,使用reverse_iterator、rbegin()、rend()即可实现,相关例子代码如下所示:
void CMsgLauncherListDlg::UpdateLauncherItemRect(){ CRect rcClient; GetClientRect( &rcClient ); CRect rcItem; u32 dwXPos = 0; u32 dwYPos = 0; int nItemCount = 0; // 反向遍历说明:当前只能显示有限数量(LATEST_MSG_LAUNCHER_DISPLAY_NUM)的消息发起者,如果当前消息发起者 // 数量大于LATEST_MSG_LAUNCHER_DISPLAY_NUM,只显示LATEST_MSG_LAUNCHER_DISPLAY_NUM个最近的消息发起者,之 // 前的消息发起者在最近的被查看后才能显示,而最近的消息发起者是放在列表尾部的 std::vector<MsgLauncher*>::reverse_iterator it = m_tMsgLauncherList.rbegin(); for ( ; it != m_tMsgLauncherList.rend(); it++ ) { nItemCount++; if ( nItemCount > LATEST_MSG_LAUNCHER_DISPLAY_NUM ) // 超过LATEST_MSG_LAUNCHER_DISPLAY_NUM的,暂时不再显示 { rcItem.SetRect( 0, 0, 0, 0 ); (*it)->SetRect( rcItem ); continue; } rcItem.SetRect( dwXPos, dwYPos, dwXPos+rcClient.Width(), dwYPos+MSG_LAUNCHER_ITEM_HEIGHT ); (*it)->SetRect( rcItem ); (*it)->Draw( &m_memDC ); // 将消息发起者信息绘制到内存DC中 dwYPos += MSG_LAUNCHER_ITEM_HEIGHT; }}
0 0
- 使用reverse_iterator迭代器实现STL容器的反向遍历
- set容器元素的插入和中序遍历,反向遍历,反向迭代器reverse_iterator和rbegin(),rend();
- C++之STL(三):迭代器类vector::iterator 和 vector::reverse_iterator 的实现、迭代器类型、常用的容器成员
- 反向迭代器reverse_iterator
- 从零开始学C++之STL(三):迭代器类vector::iterator 和 vector::reverse_iterator 的实现、迭代器类型、常用的容器成员
- 从零开始学C++之STL(三):迭代器类vector::iterator 和 vector::reverse_iterator 的实现、迭代器类型、常用的容器成员
- 遍历STL容器时迭代器的使用注意
- map容器的反向遍历
- 在遍历中使用 iterator/reverse_iterator 进行 Erase 的用法
- 在遍历中使用 iterator/reverse_iterator 进行 Erase 的用法
- 在遍历中使用 iterator/reverse_iterator 进行 Erase 的用法
- 在遍历中使用 iterator/reverse_iterator 进行 Erase 的用法
- 在遍历中使用 iterator/reverse_iterator 进行 Erase 的用法
- 在遍历中使用 iterator/reverse_iterator 进行 Erase 的用法
- Reverse_iterator的使用
- STL 逆向迭代器 reverse_iterator 的逻辑位置与实际位置
- STL中 如何在遍历中使用 iterator/reverse_iterator 删除元素
- STL : reverse_iterator
- Zookeeper场景实践:(5)分布式通知/协调
- 分布式搜索方案选型之一:Solr
- UIView的layoutSubviews和drawRect方法何时调用
- Apache 体系结构
- poj1811 Prime Test,随机素数测试
- 使用reverse_iterator迭代器实现STL容器的反向遍历
- 任意进制转换的总结 (c和java)
- 简单Java小程序----无界面ATM机
- 类的初始化和赋值
- 分布式搜索方案选型之二:Solandra
- Myeclipse搭建SSH框架(详细步骤)
- 分布式搜索方案选型之三:SolrCloud
- 开灯问题(南阳oj77)
- 树状数组初步 Light OJ 1112 Curious Robin Hood