Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2011, 15:57   #1
WOWka777
Пользователь
 
Регистрация: 21.10.2008
Сообщений: 37
Вопрос Преобразование строки в индекс массива

Всем привет!
Имеются строки вида "1 2 3 4 5", "2 1 3 4 5", "1 2 5 4 3" и тд.. всего их n!, где n-размер строки. Они храняться в массиве. Как можно преобразовать строку в индекс массива? Пробывал взять crc32 и делением по модую n! получить индекс. Таким способом нормальных результатов добиться не удалось т.к различные хеши при делении дают одинаковое значение, а этого быть не должно.
Подскажите, как можно решить такую проблемму?
WOWka777 вне форума Ответить с цитированием
Старый 20.03.2011, 16:06   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

использовать std::map с ключом string
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance

Последний раз редактировалось pproger; 20.03.2011 в 16:08.
pproger вне форума Ответить с цитированием
Старый 20.03.2011, 17:31   #3
WOWka777
Пользователь
 
Регистрация: 21.10.2008
Сообщений: 37
По умолчанию

как правильно очистить память из под map?
Код:
 map <int,string> mass;
for(int i=0;i<1000000;i++)
       mass[i]= "1 2 3 4 5 6 7 8 9 10 11 12 ";
mass.clear();
gin.get();
Память не освободилась, это видно в таск менеджере. Пробывал вместо clear() использовать mass.erase(mass.begin(),mass.end()) , не помогло, не помогает даже вызов деструктора mass.~map().

Последний раз редактировалось WOWka777; 21.03.2011 в 12:34.
WOWka777 вне форума Ответить с цитированием
Старый 21.03.2011, 15:52   #4
WOWka777
Пользователь
 
Регистрация: 21.10.2008
Сообщений: 37
По умолчанию

Неужели ни кто не знает?
WOWka777 вне форума Ответить с цитированием
Старый 21.03.2011, 16:22   #5
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

о боже...
объект ты объявил на СТЕКЕ, память не может не освободиться

насчет мапа, я тебе советовал КЛЮЧИ использовать в качестве строковых типов.
если я правильно понял твою проблему (если массив, если строка, тебе строку нужно преобразовать в индекс, чтобы обратиться к этому массиву).

ну да бог с тобой, ты видимо вообще мух не ловишь
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 21.03.2011, 16:36   #6
WOWka777
Пользователь
 
Регистрация: 21.10.2008
Сообщений: 37
По умолчанию

спасибо, разобрался...
тему можно закрывать
WOWka777 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
индекс строки в таблице maryan.vetrov C# (си шарп) 2 24.02.2011 19:31
"Индекс вне границ массива". Строки. (Проблема еще не решена) Broken Angel Помощь студентам 5 18.01.2011 21:33
Индекс равновесия массива[перенесено из Java SE] 0479 Помощь студентам 1 14.09.2010 05:31
паскаль. индекс элемента массива belka1 Помощь студентам 2 09.01.2010 03:58
паскаль.найти индекс элемента массива belka1 Помощь студентам 6 13.11.2009 19:40