有时候我会厌倦这些my_vector.begin(), my_vector.end()
噪音。去年在boostcon,Andrei Alexandrescu的主题演讲题为Iterators Must Go(video)
在将范围引入C ++方面是否有任何进展,所以我最后可以说std::sort(my_vector)
?
答案 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, " " ) );
}
当然,使用begin
和end
(您的版本)调用替换成员函数调用startOf
和endOf
,至少直到C ++ 0x ...