Страницы

Поиск по вопросам

вторник, 18 февраля 2020 г.

C++11 range-based цикл

#cpp #foreach #const


В каких случаях использовать данный синтаксис? Где использовать const, а где ссылку?

for (const auto& elem: коллекция)
{  ...  }


Мои подозрения, если употребить const, то в elem будет храниться константный объект,
а если ссылку, то в elem будет храниться ссылка на константный объект. Если не употреблять
этого всего, то в elem будет хранится копия объекта.
    


Ответы

Ответ 1



const auto& если объект не будет меняться в теле цикла и/или оптимизация операций копирования. auto& если необходимо изменить объект в коллекции. auto если объект будет изменяться, но его копия в коллекции должна остаться неизменной.

Комментариев нет:

Отправить комментарий