boost之Boost.Foreach遍历
来源:互联网 发布:linux vi 删除多行 编辑:程序博客网 时间:2024/05/18 03:46
类似perl和c#的foreach,BOOST_FOREACH给我们带来了一种简单而有效的遍历数组的方式。
让我们首先来看个简单的例子:
#include <string>#include <iostream>#include <boost/foreach.hpp>int main(){ std::string hello( "Hello, world!" ); BOOST_FOREACH( char ch, hello ) { std::cout << ch; } return 0;}
和传统的for或者std::for_each()算法比起来,BOOST_FOREACH显得更加优雅而简洁。
BOOST_FOREACH支持遍历所有被Boost.Range识别为序列类型的对象,通常包括如下几种:
- STL容器
- 数组
- 字符串strings
如下是几个常见的例子:
1. 用BOOST_FOREACH遍历STL容器
std::list<int> list_int( /*...*/ );BOOST_FOREACH( int i, list_int ){ // do something with i}
2. 使用引用类型获取更高效的遍历
std::vector<std::vector<int> > matrix_int;BOOST_FOREACH( std::vector<int> & row, matrix_int )BOOST_FOREACH( int & i, row )++i;
3. 使用break, continue,及return实现遍历循环的控制
std::deque<int> deque_int( /*...*/ );int i = 0;BOOST_FOREACH( i, deque_int ){ if( i == 0 ) return; if( i == 1 ) continue; if( i == 2 ) break;}
此外,还一个小诀窍就是通过define将BOOST_FOREACH定义为更优雅的方式:
#define foreach BOOST_FOREACH
BOOST_FOREACH并不复杂,有兴趣的朋友可以看看,相信对提高大家的编程能力还是很有帮助的。
1 0
- boost之Boost.Foreach遍历
- boost之Boost.Foreach遍历
- boost之foreach
- Boost.Foreach
- 使用 boost.foreach foreach
- 使用 boost.foreach foreach
- 使用 boost.foreach foreach
- boost foreach 探究
- Boost程序库学习-foreach
- boost foreach库的例子
- boost 遍历文件夹
- boost::filesystem遍历目录
- boost property_tree遍历
- boost递归遍历文件夹
- boost递归遍历文件夹
- Boost学习之Boost简介
- 【boost学习】之boost::bind
- boost学习之Boost.Lambda
- Linux内核中的GPIO系统之(3):pin controller driver代码分析
- Web全栈工程师的自我修养 心得2
- java io 类继承图
- iOS应用国际化教程(2014版)
- unity3d 手机中Input类中touch详解_教程
- boost之Boost.Foreach遍历
- 关于recover managed standby database finish force
- android显示gif图片
- 区间DP-POJ-3186-Treats for the Cows
- 图像分类研究现状
- MATLA的S-FUNCTION用法
- 极客学院30天免费VIP
- iOS-UIKit(UIDatePicker.h--解读)
- 七天学习nodejs学习笔记