В Accelerated C++
от Andrew Koenig
он пишет следующий код для введения в шаблоны и общие функции. Этот код пропускает первый элемент в контейнере? Или же это скопировать первый объект итератора перед приращением:Пояснения к операторам постфикса/префикса на итераторах
template<class In, class Out>
Out copy(In begin, In end, Out dest)
{
while (begin != end)
*dest++ = *begin++;
return dest;
}
Другими словами, означает ли это вести себя так же, как и его код ?:
template<class In, class Out>
Out copy(In begin, In end, Out dest)
{
while (begin != end)
*dest = *begin;
dest++; begin++;
return dest;
}
Моя единственная мысль заключается в том, что я задаюсь вопросом, оставлен ли порядок приращений неуказанным в '* dest ++ = * begin ++', но вы дали заказ на добавочный шаг во втором примере. –