Ответ
 
Опции вопроса Поиск в этом вопросе Опции просмотра
  #1  
Старый 01.10.2011, 02:57
Аватар для Guest
Guest
Вопрос
Сообщений: n/a
По умолчанию

Добрый вечерПеределываю/обновляю код написанный очень давно (и не мной) на С (практически). Программист использовал список, для простоты КодC++ (Qt)struct CObject {long mID; // идентификатор CObject * mPrev; // предыдущий в списке CObject * mNext; // следующий в списке ..};Конечно то же самое с std::list - не сутьПрофайлер показывает что тормозит на таком участкеКодC++ (Qt)..CObject * theHead = ... // знаем голову спискаCObject * data1 = Lookup(theHead, ID_1); // нашли в списке элемент с ID_1... // используем данные data1 ...CObject * data10 = Lookup(theHead, ID_10); // нашли в списке элемент с ID_10... // используем данные data10 Lookup просматривает элементы начиная с theHead, пока не найдет с нужным ID. Откуда тормоза понятно. Легко сказать "возьми что-то другое вместо списка" - но во-первых это совсем непросто (код велик), а главное - здесь список прекрасно себя оправдывает во многих др. местах (удаления, перелинковки и.т.п) "Глубина поиска" не превышает 500 (хотя весь список может быть намного больше).Как бы мне здесь "ускориться" ?Спасибо
Ответить с цитированием
Ответ



Похожие вопросы
Тема Автор Раздел Ответов Последний вопрос или ответ
Поменять стандартный поиск на поиск от Гугла Guest Продолжение архива вопросов 0 29.09.2011 13:37
nvidia 185 нет в списке Guest Продолжение нового архива 0 29.09.2011 11:04
Поиск точки G = поиск ключа к сердцу? jursss Секс 4 03.02.2011 18:25



© www.otvetnemail.ru - Форум вопросов и ответов.