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

Организация хранения и доступа к объектам разных классов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Что такое таблица в С++? http://www.cyberforum.ru/cpp-beginners/thread970011.html
Нужно сделать поиск по таблице . Но мне не совсем понятно , что это такое ? Можно ли двумерный массив считать за таблицу ? ( в нём же тоже есть строки , столбцы) или это массив структур ? ...
C++ Нужно разобраться с небольшим примером Здравствуйте . Есть такая программа , где два массива записываются в 2 разных файла , потом считываются с него , а далее нужно найти общие элементы этих массивов и записать их в третий массив. int... http://www.cyberforum.ru/cpp-beginners/thread970004.html
Алфавит C++
You given N and one line of length N (1<=N<=1000)than consist of letter in interval A..Z. Your task is to find out how often each letter from the alphabet is found in the line. First line of your...
Цветной текст в С C++
Доброго времени суток. Помогите разобраться, как выделять текст в консоле. Мне надо выделить цветом какой либо элемент массива. Пытался сделать таким способом: #include <windows.h> #include...
C++ Прога для определения наибольшего возрастающего ряда в последовательности цифр http://www.cyberforum.ru/cpp-beginners/thread969940.html
Прога должна запускаться через командную строку, считывать входные данные из одного текстового файла, и записать выходные данные в другой текстовый файл. Сама суть программы в том, чтобы найти в...
C++ В чем ошибка? #include<stdio.h> #include<conio.h> int main() {int N, i; float p=1, n=2; scanf("%d", &N); for (i=1; i<=N; i++) {p=p*((n-1)/n); n=n+6;} printf("%f", p); подробнее

Показать сообщение отдельно
rudolf-zaal
0 / 0 / 0
Регистрация: 06.10.2013
Сообщений: 2
06.10.2013, 12:01  [ТС]
При вставке/удалении блоков нужно постоянно поддерживать актуальность индексов. Хотя с указателями аналогично, но хотелось бы чтоб они как-нибудь сами))

Получается что хранить блоки в векторе и работать с ними как-то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int addBlock("тип блока", "id");
int addBlock("тип блока", "id", int position);
 
...
 
Doc *doc = new Doc();
int table_id = doc->addBlock("table", "mytable");      //добавили блок, получили его индекс
int list_id = doc->addBlock("list", "mylist", table_id); //добавили перед таблицей список
 
.....
.....
 
table_id = doc->getIndexById("mytable");      //обновили инфу об индексе таблицы
Table *table = doc->getBlockById(table_id);  //получили указатель на таблицу
table->.....                                             //используем таблицу
самый оптимальный вариант?

хм, хотя можно упростить и не следить за индексами вообще
C++
1
2
3
4
5
6
7
Doc *doc = new Doc();
int table_id = doc->addBlock("table", "mytable");      //добавили блок, получили его индекс
int list_id = doc->addBlock("list", "mylist", table_id); //добавили перед таблицей список
.....
.....
Table *table = doc->getBlockById("mytable");  //получили указатель на таблицу
table->.....                                             //используем таблицу
Пока думаешь на вопросом, ответ сам находится))
Задача чисто спортивная, исследую разные возможности)
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru