C++11begin语法糖

2016-05-07 YongHao Hu 更多博文 » 博客 » GitHub »

C++

原文链接 http://yonghaowu.github.io/2016/05/07/CPP11_begin/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


在C++03中, 标准容器提供了begin与end函数

    vector<int> v;
    int a[100];
    sort(v.begin(), v.end());
    sort(a, a+sizeof(a)/sizeof(a[0]));

为了统一数组跟容器的语法, C++11提供了begin()函数

    sort(begin(v), end(v));
    sort(begin(a), end(a));

但是, C++11并没有提供rbegin()函数,以下代码会报错.

    vector<int> a(100, 1);
    for(auto it = rbegin(a); it!=rend(a); ++it)
        cout<<*it<<" ";

我认为原因就是, 数组并不像容器一样可以reverse, 所以想提供也没办法了.