C ++中范围的状态是什么?

时间:2010-11-18 22:25:06

标签: c++ stl c++11 iterator range

有时候我会厌倦这些my_vector.begin(), my_vector.end()噪音。去年在boostcon,Andrei Alexandrescu的主题演讲题为Iterators Must Govideo

在将范围引入C ++方面是否有任何进展,所以我最后可以说std::sort(my_vector)

3 个答案:

答案 0 :(得分:6)

C ++中的范围仍然没有足够的经验 作为当前的实验实现,有Boost.Range 2.0和Oven Range Library。

答案 1 :(得分:2)

据我所知,在这方面没有取得任何进展。

答案 2 :(得分:2)

#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>

template< class Container >
void sort( Container& c ) { sort( c.begin(), c.end() ); }

int main()
{
    using namespace std;

    int const           data[]  = {3, 1, 4, 1, 5, 9, 2, 6, 5, 4};
    vector<int>         v( data, data + sizeof( data )/sizeof( *data ) );

    sort( v );
    copy( v.begin(), v.end(), ostream_iterator<int>( cout, " " ) );
}

当然,使用beginend(您的版本)调用替换成员函数调用startOfendOf,至少直到C ++ 0x ...