Chinaunix首页 | 论坛 | 博客
  • 博客访问: 13074
  • 博文数量: 13
  • 博客积分: 475
  • 博客等级: 下士
  • 技术积分: 125
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-09 11:20
文章分类

全部博文(13)

文章存档

2012年(4)

2010年(9)

我的朋友

分类:

2010-11-24 23:34:50

example 1:
string str("Hello, world!");
BOOST_FOREACH(char c, str)
{
    cout << c;
}
它相当于:
string str("Hello, world!");
for(int i = 0; i < str.length(); ++i)
{
    char c = str[i];
    cout << c;
}

example 2:
int arr[] = {1, 3, 5, 2, 0};
BOOST_FOREACH(int & a, arr)
{
    ++a;
    ....
}
arr中的值被改变了,如果是 int a,则arr中的值不会变。

它相当于:
int arr[] = {1, 3, 5, 2, 0};
for(int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i)
{
    int & a = arr[i];
    ++a;
    ...
}

example 3:
std::vector > matrix_int;
BOOST_FOREACH( std::vector & row, matrix_int )
    BOOST_FOREACH( int & i, row )
        ++i;

to make the BOOST_FOREACH shorter:
#define foreach BOOST_FOREACH
#define rforeach BOOST_REVERSE_FOREACH

inlude when using it, of course.

It's so easy!


阅读(527) | 评论(0) | 转发(0) |
0

上一篇:nmap

下一篇:Disable ping response

给主人留下些什么吧!~~