Как создать список объектов класса в с++?

208
15 декабря 2016, 16:01

Требуется обработать данные, которые находятся или, вернее, формируются в списке объектов класса. Возникает ряд общих вопросов: Каким образом создается список, состоящий из объектов класса?
Какие должны быть поля в списке для отображения объекта класса?
Как инициализировать объект класса при создании элемента списка?

Answer 1
  1. В C++ для таких целей используются стандартные контейнеры. В зависимости от нужных вам операций и их требуемой производительности, вам подойдёт std::vector (обычно то, что надо), std::set, std::queue или другие контейнеры. Писать контейнер самому в подавляющем большинстве случаев нерационально.
  2. По поводу полей, вам не нужно об этом думать, если вы пользуетесь стандартным контейнером.
  3. Контейнеры содержат по существу копии положенных туда объектов. Для того, чтобы избежать потенциально дорогого копирования, возможно, стоит располагать объекты в куче и держать в контейнере (возможно, «умные») указатели на них. Таким образом, инициализация тривиальна. Если ваш контейнер всё же будет содержать сами объекты, вам может понадобиться конструктор копирования (т. к. например std::vector копирует объекты при изменении размера), а для добавления объекта разумно воспользоваться функцией наподобие emplace_back, которая конструирует объект прямо в контейнере.
READ ALSO
LNK 2019  При вызове объекта шаблонного класса

LNK 2019 При вызове объекта шаблонного класса

Ошибка происходит при инициализации объекта класса Interface;

162
Ошибка error C2039: {ctor}: не является членом

Ошибка error C2039: {ctor}: не является членом

Дано: число N и последовательность a1, a2, … aN

297
Вставить символ в слово между символами

Вставить символ в слово между символами

Всем доброго времени суток

177
Как нарисовать картинку с помощью OpenGl?

Как нарисовать картинку с помощью OpenGl?

Здравствуйте! Не подскажете, как нарисовать картинку с помощью OpenGl?

152