Форум программистов, компьютерный форум CyberForum.ru

STL вектор динамических объектов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ C++ Threads или как запрограммировать кнопку Старт и Стоп http://www.cyberforum.ru/cpp-beginners/thread941751.html
Погуглил нечего не нашёл на эту тему..
C++ Из точки А в точку В Добрый день. Взялся за .. как мне показалось вначале .. легкую задачу и что-то засел над ней второй день... Код все больше и больше усложняю, но пока он криво работает... Мб кто-то подскажет более-менее простой алгоритм ее решения? Задача: дана матрица двумерная с значениями {0;1}. С помощью "1" изображена некая замкнутая кривая. Даются координаты точек А(START) и В(FINISH) на данной кривой.... http://www.cyberforum.ru/cpp-beginners/thread941726.html
C++ Перегрузка операторов
Помогите проверить и сделать надо 1) Базовый класс Строка Описать базовый класс СТРОКА. Обязательные члены класса: * указатель на char - хранит адрес динамически выделенной памяти для размещения символов строки; * значение типа int - хранит длину строки в байтах. Обязательные методы должны выполнять следующие действия:
Введенное число делить на второе введенное число пока первое число не станет равным нулю C++
Введенное число делить на второе введенное число пока первое число не станет равным int number=0; int secondNum=0; int res=0; void main(){ cin>>number;
C++ Библиотеки для загрузки 3d моделей http://www.cyberforum.ru/cpp-beginners/thread941637.html
собственно есть ли у кого парсеры для загрузки разных 3d форматов ?
C++ Настройка SDL в Visual Studio 2012 Здравствуйте. Настраиваю SDL по данному видео: https://www.youtube.com/watch?v=mdQHYxe6zJo Подключил папки bin и include, скопировал файл SDL.dll в папку system и сделал еще кое-какие несложные манипуляции из видео, но при запуске программы: #include "SDL.h" int main( int argc, char* args ) { //Start SDL SDL_Init( SDL_INIT_EVERYTHING ); подробнее

Показать сообщение отдельно
spyphy
1 / 1 / 0
Регистрация: 03.11.2012
Сообщений: 35

STL вектор динамических объектов - C++

22.08.2013, 14:02. Просмотров 934. Ответов 13
Метки (Все метки)

Нужно время от времени ложить в std::vector (или std::list) динамические объекты. Под динамическим объектом здесь понимается объект, который содержит некоторые данные, память под которые выделяется динамически с помощью оператора new.
Как лучше реализовать эту типичную задачу. Здесь вижу несколько вариантов:
1)
Код
MyClass ob; // выделение памяти с помощью new реализовано в конструкторе
list_ob.push_back(ob);
Способ вроде бы стандартный, однако при этом требуется реализация конструктора копирования, и если класс достаточно большой и часто модифицируется, а для других целей конструктор копирования в общем то и не нужен, то имеет ли смысл заморачиваться?... К тому же это лишнии затраты ресурсов.
2) хранить в списке указатели на объекты.
Код
MyClass *p = new MyClass;
list_ob.push_back(p);
Правда я пока не очень ясно представляю как будет происходить обращение к полям объектом по итераторам этого списка (легко можно будет запутаться где итератор, а где указатель).
3) выделение памяти с помощью new реализовать не в конструкторе, а отдельной функцией Init(), которую вызывать уже после того, как объекты будут положены в std::list (при этом можно будет ограничиться побитовым копированием данных)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru