![]() |
Создание динамического массива объектов класса
Вообщем погуглил ... и пришол к выводу что такое только реально сделать через указатели, но это очень тормозное решение.
В итоге думаю сделать скажем изначально массив [16], и потом если надо будет еще что то добавить просто сделаю удвоение размера этого же массива - П,С, - думаю лагать не будет и быстрее указателей |
Ответ: Создание динамического массива объектов класса
Цитата:
если тебе нужен массив с постоянно меняющимся размером, то нужно юзать другие структуры данных. например связанные списки. |
Ответ: Создание динамического массива объектов класса
судя по тестам обычный массив работает на порядок быстрее, realloc и vector кто юзал?
или может вообще пихать в структуру |
Ответ: Создание динамического массива объектов класса
Aceton
прочитай хотя бы какую-то книжку для начинающих по C++, рекомендую "C++ за 21 день" сразу все такие вопросы отпадут, или хотя бы удостоверся что точно и полностью понимаешь что такое обьект, а что такое указатель на обьект, а что такое класс и что такое масив если тебе плевать на учёбу и нужен результат тут и сразу - используй std::vector |
Ответ: Создание динамического массива объектов класса
не принимай меня за полного нуба))) я прекрасно понимаю что это все значит, просто 5 лет работал на php и прочив веб вещах, сишнег знаю выше уровня нуба:crazy:
|
Ответ: Создание динамического массива объектов класса
Вложений: 1
Цитата:
Это: Код:
#include <iostream> Цитата:
|
Ответ: Создание динамического массива объектов класса
Цитата:
|
Ответ: Создание динамического массива объектов класса
:crazy: смотря что понимать под этим уровнем
|
Ответ: Создание динамического массива объектов класса
std::vector.
|
Ответ: Создание динамического массива объектов класса
мой выбор (если скорость критична) - обычный динамический массив в куче, размером в max элементов. по сути это будет обычным std::vector с reserve(max)
минусом является перерасход памяти плюсом - скорость и простота. |
Ответ: Создание динамического массива объектов класса
сделал через map и указатели , вот пример загрузщика карты, правда недоделанный, но рабочий
читает из файла данные и рисует обьекты #include "../lsd.h" #include "../blitz3dsdk.h" #include <fstream> #include "../player.h" #include "../terrain.h" #include "../building.h" #include <map> using namespace std; void CLSD::LoadMap(){ map<int,CBuilding*> buildings; char buf[128]; char *param; int i,j=1,p=10; int item,type,x,y,z,X,Y,Z; ifstream map; map.open("D:\\map.map"); if(!map.good()){bbRuntimeError("Can't open map file!");} while(map.getline(buf,sizeof(buf))) { param = strtok (buf," "); i=0; while (param!=NULL) { bbText(10,p,param); p=p+10; switch(i) { case 0: item= atoi(param); break; case 1: type= atoi(param); break; case 2: x=atoi(param); break; case 3: y=atoi(param); break; case 4: z=atoi(param); break; case 5: X=atoi(param); break; case 6: Y=atoi(param); break; case 7: Z=atoi(param); break; } param = strtok (NULL," "); i++; } //в зависимости от типа обьекта находим его описание //и вызываем нужные классы и создаем обьект switch(type) { case 2: CBuilding *b = new CBuilding ; b->CreateBuilding("objects/buildings/box/box.3ds",type,x,y,z,X,Y,Z); buildings[j]=b; break; } j++; } } |
Часовой пояс GMT +4, время: 01:47. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot