Информация об изменениях

Сообщение Re[9]: c++ указатели vs умные указатели от 22.12.2018 8:24

Изменено 22.12.2018 8:53 DDDX

Re[9]: c++ указатели vs умные указатели
Здравствуйте, lpd, Вы писали:

lpd>Здравствуйте, alex_public, Вы писали:


_>>Здравствуйте, lpd, Вы писали:


lpd>>>ОК, можно так, только я предпочел бы хранить в векторе указатели на Session, чтобы адреса объектов не менялись при расширении вектора. Получается, все-таки нужны указатели.


_>>Ну для начала это будет намного медленнее. Потому что подобная косвенная адресация убивает кэш процессора.


lpd>В данном случае действительно, список удобнее (я зря упомянул вектор, хотя во многих других случаях он может понадобиться).


std::deque

Я вот не могу сказать — перемещает он или нет. Когда-то про него читал, но уже все забыл.

Но.

У класса, которые я в него засовываю через emplace_back, явно запрещены конструкторы/операторы копирования/перемещения.

Значит не перемещает.

А потом я юзаю указатели на элементы.
Re[9]: c++ указатели vs умные указатели
Здравствуйте, lpd, Вы писали:

lpd>Здравствуйте, alex_public, Вы писали:


_>>Здравствуйте, lpd, Вы писали:


lpd>>>ОК, можно так, только я предпочел бы хранить в векторе указатели на Session, чтобы адреса объектов не менялись при расширении вектора. Получается, все-таки нужны указатели.


_>>Ну для начала это будет намного медленнее. Потому что подобная косвенная адресация убивает кэш процессора.


lpd>В данном случае действительно, список удобнее (я зря упомянул вектор, хотя во многих других случаях он может понадобиться).


std::deque

Я вот не могу сказать — перемещает он или нет. Когда-то про него читал, но уже все забыл.

Но.

У класса, которые я в него засовываю через emplace_back, явно запрещены конструкторы/операторы копирования/перемещения.

Значит не перемещает.

А потом я юзаю указатели на элементы.

---
Дополню.

Я тут внимательно посмотрел на этот свой последний случай использования std::deque.

В отладочной версии у его элементов есть счетчик ссылок. То есть снаружи работают со смарт-указателями на эти элементы.

Пусть оно само следит за правильностью разрушения всего хоровода объектов, я лучше буду думать о бабах более насущных проблемах.