К вопросу о STL
В comp.lang.c++.moderated идёт серьёзное обсуждение различных аспектов стандартной библиотеки. Например, обсуждается корректность модели итераторов, которые, в отличие от индексов, имеют непосредственный доступ к элементам контейнера.
Другими словами:
int * array = new int[ 10 ];
for( int i = 0; i < 10; ++i )
{
array[ i ] = doSmth( [...] );
}
Здесь мы изменяем i независимо от array - это раз. Два, ( *i ) - не даёт возможности модифицировать объект. И три, даже если, положим, массив куда-то переместился, то индекс не стал от этого фиктивным.
Понятное дело, что пример условный. На самом деле можно написать нормальный контейнер с индексами (и они уже имеются - ссылки в том же обсуждении).
А что Вы думаете по этому и другим, затронутым в треде, вопросах?
Update: Тема, заявленная Мейерсом, такая: "Loops vs Algorithms"
Другими словами:
int * array = new int[ 10 ];
for( int i = 0; i < 10; ++i )
{
array[ i ] = doSmth( [...] );
}
Здесь мы изменяем i независимо от array - это раз. Два, ( *i ) - не даёт возможности модифицировать объект. И три, даже если, положим, массив куда-то переместился, то индекс не стал от этого фиктивным.
Понятное дело, что пример условный. На самом деле можно написать нормальный контейнер с индексами (и они уже имеются - ссылки в том же обсуждении).
А что Вы думаете по этому и другим, затронутым в треде, вопросах?
Update: Тема, заявленная Мейерсом, такая: "Loops vs Algorithms"
