正像其他文章说的……加入了cbegin来返回const_iterator,并且可以使用auto了
下面的代码如果在c++03标准中,auto的部分就要这样写了:
vector::const_iterator ci = nums.cbegin();
但是0x重用了auto关键字,可以直接推到模板参数,非常便利……甚至便利性超过lambda的好特性阿……(误XD)
当然使用g++要增加–std=c++0x参数
#include
#include
using namespace std;
int main()
{
vector nums(3);
nums.push_back(1);
nums.push_back(2);
nums.push_back(3);
auto ci = nums.cbegin();
int sum = 0;
while(ci != nums.cend())
{
sum += *ci;
++ci;
}
cout<
return 0;
}
环境 Fedora 11,Gcc 4.4.0
测试中用eclipse写代码,auto的地方会认为出错,说明eclipse暂时还是无法辨认gcc 4.4的特性,但是加入–std=c++0x后不影响编译
绝不亚于垃圾的vs2010