C++11 range-based цикл

305
15 июня 2017, 06:40

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

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

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

Answer 1
  • const auto& если объект не будет меняться в теле цикла.
  • auto& если необходимо изменить объект в коллекции и/или оптимизация операций копирования.
  • auto если объект будет изменяться, но его копия в коллекции должна остаться неизменной
READ ALSO
Использование std::string в dll

Использование std::string в dll

Доброго времени сутокИзучая dll, получил интересное задание - сделать библиотеку, работающую с std::string и сделать 2 exe, юзающих dll, одна из которых...

203
instafeed.js + scrollForever не хочет крутиться каруселька

instafeed.js + scrollForever не хочет крутиться каруселька

Скрипты instafeedjs + scrollForever подключаются в хедере сайта

355
Slider range and checkbox

Slider range and checkbox

Здравствуйте! Подскажите, пожалуйста, как можно связать динамически слайдер диапазона с чекбоксами? То есть при нажатии на определенный...

338
Многоуровневый список с checkbox

Многоуровневый список с checkbox

Здравствуйте, есть многоуровневый список с checkbox - ссылка

588