![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 24.01.2009
Сообщений: 7
|
![]()
Здравствуйте всем.
У меня есть массив элементов Table, каждый из которых представляет собой структуру типа: struct test{ vector<int> a; vector<int> b }; В каждом элементе-структуре массивы a и b около 2000 байт каждый. Работаю в режиме постоянного добавления элементов Table в конец и удаления части элементов из начала этого массива. Суммарное число вставленных/удаленных записей массива Table оч. большое. Есть два варианта реализации массива Table: 1) vector<struct test> Table, и в каждый элемент запиывать структуру,содержащую массивы a и b. 2) vector<struct test *> Table, и в каждый элемент записывать ссылку на вновь созданный элемент, содержащий векторы a и b. Но во втором варианте, как я предполагаю, при удалении элементов Table, дополнительно придется самостоятельно уничтожать соотвествующий элемнт-струтуру, т.к. скорее всего, автоматически этого делатся не будет. Подскажите, пожалуйста, какой вариант более быстрый. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
|
![]()
Ну 100% тебе не скажу, но, думается, со ссылками быстрее будет...
В таком случае может вообще список какой-нибудь сделать динамический?
Если я помог вам - порадуйте меня, нажмите на весы слева
![]() |
![]() |
![]() |
![]() |
#3 |
Регистрация: 24.01.2009
Сообщений: 7
|
![]()
Я проверял практически - c list действительно побыстрее работает, но мне нужно использовать доступ через индекс.
Если ссылки в векторе хранить, то это примерно так будет: Код:
Если да, то где в таком случае будет вызван деструктор для векторов a и b? Последний раз редактировалось Pahan; 20.12.2009 в 12:20. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
|
![]()
По списку тоже можно по идее с помощью индекса работать
![]()
Если я помог вам - порадуйте меня, нажмите на весы слева
![]() |
![]() |
![]() |
![]() |
#5 |
Регистрация: 24.01.2009
Сообщений: 7
|
![]()
Провел такое практическое сравнение:
для простоты вместо struct test взял vector_element. 1) Код:
Код:
Корректно ли такое сравнение? М.б. я что-то упустил из внимания? |
![]() |
![]() |
![]() |
#6 |
Регистрация: 24.01.2009
Сообщений: 7
|
![]() Код:
|
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
|
![]() Цитата:
что - нибудь в этом духе
Если я помог вам - порадуйте меня, нажмите на весы слева
![]() |
|
![]() |
![]() |
![]() |
#8 |
Регистрация: 24.01.2009
Сообщений: 7
|
![]()
Как получить доступ к коду деструктора типа vector_element??
|
![]() |
![]() |
![]() |
#9 |
Регистрация: 24.01.2009
Сообщений: 7
|
![]()
К коду деструктора типа vector_element
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
|
![]()
Я не очень вдумывался в суть задания - для библиотечного типа скорее всего никак, поэтому можно попробовать переписать его...
Думаю, это можно решить с помощью наследования... Но категорически не уверен, не принимай на веру ![]()
Если я помог вам - порадуйте меня, нажмите на весы слева
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Принтер будет работать лучше если узнает что его ждет в случае .. | HellMercenariess | Компьютерное железо | 3 | 09.11.2009 09:59 |
Что быстрее?! | Dimedrolum | Общие вопросы C/C++ | 5 | 14.10.2009 11:57 |
Как заставить TTimer работать быстрее? | Вадим Буренков | Общие вопросы Delphi | 5 | 21.07.2009 09:08 |
Метод для класса который будет работать с будующим экземпляром | SunKnight | Общие вопросы .NET | 7 | 12.05.2009 20:25 |
Seagate - ST3320620AS 320Gb. работает в режиме SATA1 и может работать в двое быстрее, как настроить? | MacTiger | Компьютерное железо | 1 | 21.04.2009 04:57 |