Каково состояние диапазонов в C ++? - PullRequest
16 голосов
/ 19 ноября 2010

Иногда я устаю от всего этого my_vector.begin(), my_vector.end() шума.В прошлом году на boostcon выступление Андрея Александреску было озаглавлено Iterators Must Go ( video )

Есть ли какие-либо успехи во внедрении диапазонов в C ++, так что я могу наконец сказатьstd::sort(my_vector)

Ответы [ 3 ]

6 голосов
/ 19 ноября 2010

Диапазон в C ++ по-прежнему недостаточен.
В качестве текущей экспериментальной реализации используются Boost.Range 2.0 и Oven Range Library.

2 голосов
/ 19 ноября 2010
#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 ...

2 голосов
/ 19 ноября 2010

Насколько я знаю, никакого прогресса в этом направлении достигнуто не было.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...