Russian Qt Forum
Март 28, 2024, 21:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Сделать из одного списка QLinkedList два  (Прочитано 4762 раз)
qtkoder777
Частый гость
***
Offline Offline

Сообщений: 245


Просмотр профиля
« : Октябрь 09, 2017, 16:10 »

Можно ли сделать из QLinkedList два списка из его элементов, не расходуя дополнительную память? То есть поставить указатели новых списков на элементы первого списка. Оператор = для итератора зачем-то есть. Так то видимо работать не будет

Код
C++ (Qt)
QLinkedList<int> L1;
L1 << 1 << 2 << 3 << 4 <<5 << 6;
QLinkedList<int>::iterator it4 = L1.begin()+3; //4
QLinkedList<int> L2; //список L2 должен содержать 1,2,3
L2 << 0 << 0;
L2.begin() = L1.begin();
L2.end() = it4;
QLinkedList<int> L3; //список L3 должен содержать 4,5,6
L3 << 0 << 0;
L2.begin() = it4;
L2.end() = L1.end();
Записан
ksk-
Самовар
**
Offline Offline

Сообщений: 178



Просмотр профиля
« Ответ #1 : Октябрь 10, 2017, 07:36 »

operator+ разве этого не делает?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Октябрь 10, 2017, 13:13 »

Я так понял что дело не в доп памяти, хочется чтобы оба контейнера содержали одни и те же данные (а не их копии). Если так то никак, эл-т хранится или в одном контейнере или в другом (но не в обоих). Можно хранить сами данные в QList (sizeof(T) > sizeof(void)) а указатели уже в 2 (или сколько угодно) контейнерах. Или один QLinkedList хранит указатели и отвечает за их создание и удаление, а другие нет
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #3 : Октябрь 11, 2017, 14:09 »

тут наверное лучше озвучить изначальную (стратегическую) задачу, может её можно решить иным способом.
Записан

Юра.
qtkoder777
Частый гость
***
Offline Offline

Сообщений: 245


Просмотр профиля
« Ответ #4 : Октябрь 12, 2017, 00:28 »

тут наверное лучше озвучить изначальную (стратегическую) задачу, может её можно решить иным способом.
Нужны кольцевой список и класс полигона на его основе.
http://algolist.ru/ds/basic/ring.php
http://algolist.ru/maths/geom/datastruct.php
Работать с голыми указателями не хочется.
Записан
qtkoder777
Частый гость
***
Offline Offline

Сообщений: 245


Просмотр профиля
« Ответ #5 : Октябрь 12, 2017, 00:28 »

Я так понял что дело не в доп памяти, хочется чтобы оба контейнера содержали одни и те же данные (а не их копии).
Да, именно это и надо
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.074 секунд. Запросов: 22.