Re[7]: update sequence items
От: Roman Odaisky Украина  
Дата: 06.09.06 11:31
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>на самом деле я бы написал тут вообще вот так. и это имхо было _правильно_ в данном случае:


А>
А>    for( int i = 0; i < iv.size(); i++ ) 
А>        ++iv[i];
А>


А>все предельно просто и понятно. и компильнется быстрее.


Правильно тут использовать не int, а std::size_t. И то не очень. Код с for(C::iterator) будет работать для любого контейнера, даже для iterator_range<istream_iterator>, — после соответствующей замены типа итератора. Код с transform (как и foreach, кстати), может быть использован для любого контейнера без единой замены. Код же с индексом годится только для vector/deque, причем для второго падает эффективность. Читаемость всех 4 вариантов одинакова для сколько-нибудь опытного программера, эффективность (пока у нас всё еще std::vector) одинакова для сколько-нибудь вменяемого оптимизатора. Выводы?
До последнего не верил в пирамиду Лебедева.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.