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

переписать std::map - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Visual C++ & Borland C++ http://www.cyberforum.ru/cpp/thread157887.html
Я хочу перейти с Borland C++ на Visual C++! И хочу узнать, сильно ли они от друг друга отличаются, есть ли в Visual C++ тип AnsiString?
C++ Как просчитать число ПИ до определенного знака? Подскажите удобную формулу. http://www.cyberforum.ru/cpp/thread157883.html
C++ Окно Windows/Linux на с++ без всяких api
Основная суть вопроса в заголовке.теперь пояснения. Как сделать окно на чистом С++без всяких opengl,winapi просто имея Пакет языка с++ и нечего больше со стандартными библами.я сразу думаю что этот код и пояснения врятли кто тут напишет.так что прошу хотя бы ссылочку алгоритмы,теорию,и желательно к этому всему листинг кода ! заранее спасибо! PS: Еще раз повторяю только на чистом с++ без API
Динамически изменяющаяся строка C++
Есть файл, который постоянно меняется.. Я его читаю так допустим: int main() { while(1) { system("clear"); system("cat /home/alexey/Desktop/log.txt");
C++ Указатель на пользовательский тип http://www.cyberforum.ru/cpp/thread157677.html
Чёто туплю, почему когда передаёшь переменную (например int) параметром через адрес в функцию (параметр - указатель на этот тип), то в теле этой функции для доступа к этой переменной приходится обращаться через указатель как через массив, причём работает только для , а дальше выдаёт ошибку. Вообще что значит это? Почему не 1 а 3 элемента и вообще как это так с точки зрения компилятора ...
C++ Распараллеливание программы Пишу брутер и встал вопрос о добавление многопоточности. Вот у меня есть функция: std::string wbfunc(std::string& hash) { std::string line; std::ifstream f("/home/hromjo/d"); while (std::getline(f, line)) { if (md5(line) == hash) { return line; подробнее

Показать сообщение отдельно
slowCheetah
11 / 11 / 1
Регистрация: 18.07.2009
Сообщений: 123

переписать std::map - C++

09.08.2010, 20:27. Просмотров 1433. Ответов 11
Метки (Все метки)

Добрый вечер!

Есть работающая программа, в которой используется map, все работало хорошо, но теперь немного изменились условия и объем данных, с которыми теперь придется работать значительно увеличился, в разы. Поскольку map используется во многих местах и обращение к нему происходит через итераторы, то заменять map на что-то другое крайне нежелательно, поэтому решил переписать map таким образом:
поскольку на скорость работы программы и объем данных, которые держатся в памяти сильно влияет именно значение, а не ключ map'а, т.е на каждый ключ приходится выделять память под структуру, и потом еще ее чистить, то есть идея заливать в map сначала все ключи, а значения забивать NULL, а потом при обращении к i-му элементу через итератор, определив, что там NULL подгружать данные.

Если б работал с вектором, перегружал бы operator[] и там уже подгружал данные, но вот как мне быть и что переписывать в map'e, если обращение к нему идет только через итераторы? Знатоки stl, помогите пожалуйста!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru