[boost]用BOOST_FOREACH简化遍历操作
来源:互联网 发布:29岁淘宝达人猝死 编辑:程序博客网 时间:2024/04/28 11:19
成天写迭代器,写的手指都疼,BOOST_FOREACH可以方便的遍历STL容器.
只需要头文件:
#include <boost/foreach.hpp>
然后遍历容器vector/list/set/deque/stack/queue都是类似的:
vector<int32_t> _v;
BOOST_FOREACH(int32_t value,_v)
{
//这里就可以访问value
}
BOOST_FOREACH(int32_t value,_v)
{
//这里就可以访问value
}
同时元素还支持引用,const,比如上面代码还可以写成:
vector<int32_t> _v;
BOOST_FOREACH(int32_t& value,_v)
{
//这里就可以修改/访问value
}
BOOST_FOREACH(int32_t& value,_v)
{
//这里就可以修改/访问value
}
如果元素内容是结构体之类,引用可以防止拷贝~~
对于map的访问有一点特殊,因为map的元素是std::pair<T1,T2>,所以需要写成这样:
std::map<int32_t,int32_t> _map;
typedef const std::map<int32_t, int32_t>::value_typeconst_pair;
BOOST_FOREACH(const_pair& node,_map)
{
//这里就可以访问node的元素
int32_t key = node.first;
int32_t value = node.second;
}
BOOST_FOREACH(const_pair& node,_map)
{
//这里就可以访问node的元素
int32_t key = node.first;
int32_t value = node.second;
}
multimap么暂时还没用过,不过相信也是类似的...感觉multimap有一点类似于map<key,set<value> > :-D
BOOST_FOREACH是正向的迭代,逆向的是BOOST_REVERSE_FOREACH
另外,不能再scope做一些使迭代器失效的操作,比如说删除之类的,原因大家都知道
- [boost]用BOOST_FOREACH简化遍历操作
- 用BOOST_FOREACH简化遍历操作
- 用BOOST_FOREACH简化遍历操作
- BOOST_FOREACH遍历
- Boost BOOST_FOREACH的扩展
- boost学习之BOOST_FOREACH
- boost源码分析之 BOOST_FOREACH
- BOOST_FOREACH
- BOOST_FOREACH
- BOOST_FOREACH
- BOOST_FOREACH
- boost_foreach
- boost源码分析之 BOOST_FOREACH(2)
- 用expect简化操作
- VBScript 遍历表单元素, 简化数据操作代码
- VBScript 遍历表单元素, 简化数据操作代码
- 用typedef简化字符串操作
- BOOST_FOREACH缺陷
- POJ 1256 全排列
- OpenRisc-49-or1200的except模块分析
- Android软件开发之制作第三方数据库与读取文件中数据库详解
- 双向链表
- 在firefox的extension(chrome)中获取当前页面的属性或方法
- [boost]用BOOST_FOREACH简化遍历操作
- 关于at91sam9260的启动概述
- 最短路径问题—九度OJ1008 (2010年浙江大学研究生机试真题)
- C++基础学习笔记----第一课(关键字的变化)
- flex全屏代码
- windows的hla编译环境配置
- php 引用
- 数组、对象分别作为函数参数时
- 打包IOS应用程序