ulidtko
10.10.2011 01:27 dedicated microblogging account
Казалось бы, что может быть приятнее и натуральнее, чем сделать #include <algorithm> и написать:
vector<int> parking_prices(num_parking_places);
istream_iterator<int> it(std::cin);
std::copy(it, it + num_parking_places, parking_prices.begin());
А вот хуй.
error: no match for ‘operator+’ in ‘it + num_parking_places’
Плюсовая стдлибка в очередной раз кромсает мне сердце своей ледяной неприступностью. Остаётся только безнадёжно плюнуть, и переписать с for(int i = 0.
Патамушта istream iterator всего лишь итератор ввода (который меньше всех умеет, наряду с итератором вывода). Ты хочешь от него поведения FwdIterator. Зделой std::advance.
Даже не Fwd, а Random Access, да.
В C++11, кстати, появился std::copy_n, который был в SGI STL.
std::advance.
:3
а после advance я смогу ещё прочитать пропущенные итемы из istream-а?
отвечай на мой ответ!
Ты должен делать advance на копии итератора, в любом случае. А чтобы прочитать пропущенные, читай из итератора-оригинала.
А лучше не еби моцк и юзай std::copy_n, если у тебя MSVS2010 или gcc с 0x (какой версии нада — хз)
кстати, std::advance позволяет на основе тега итератора выбрать наиболее оптимальный способ сдвига. Если Random Access, то напрямую прибавит, если Fwd, то сделает n раз ++.
Такие дела.
Зависит. А ваще /8 хорошо. да.
SUDDENLY :3
Да я ж не тебе, епт :3
Кхм, кажется, это не работает. В момент создания копии итератор сдвигается. И все изменения копии касаются и оригинала, поскольку они шарят поток и никак не захватывают его состояния или буферы. Говно.
0xd34df00d: попробуй ? Если заработает, покажи кот.
Я про возврат к пропущенным значениям, в смысле.
литераторы инвалидируются при мутациях же.
литераторы, лол. *итераторы, God bless IME.
Этот тред нуждается в http://img-fotki.yandex.ru/get/4008/phob...
InputIterator-ы только, да. Остальные вполне ок такое зделоют.
ТЫ В АРМИИ СЫНОК ?
>стдлибка
Сразу виндо что ты идиот и не видишь разницы между ненужной стл и божественной стдлибкой.
ну-ка быстро съебал, пидарок.
дохуя натурал?
error: ‘copy_n’ is not a member of ‘std’
Печалька, посоны.
гоцаце штоле ?
а то!