Страницы

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

пятница, 26 апреля 2019 г.

C++11 range-based цикл

В каких случаях использовать данный синтаксис? Где использовать const, а где ссылку?
for (const auto& elem: коллекция) { ... }
Мои подозрения, если употребить const, то в elem будет храниться константный объект, а если ссылку, то в elem будет храниться ссылка на константный объект. Если не употреблять этого всего, то в elem будет хранится копия объекта.


Ответ

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

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

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