Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Stl

831
29 июня 2005 года
S_T
117 / / 23.10.2002
Есть такие определения:
 
Код:
typedef basic_string<TCHAR> tstring;
typedef set<tstring> dictionary;

dictionary m_dic;


Затем в m_dic (через insert()) добавляется набор tstring.

Так вот, если я делаю такой цикл:
 
Код:
for (dictionary::iterator i = m_dic.begin();
     i != m_dic.end();
     i++)
{
    здесь в *i перебираются строки в алфавитном порядке.
}


Задача такая - оставить m_dic как есть (то есть не передавать Pred в определиении set для типа dictionary) - оставив тем самым естественную возможность получать строки из m_dic отсортированные в алфавитном порядке. Либо можно вообще отказаться от set - тем самым ухудшив операцию по добавлению новой строки. Но при этом нужно получить строки отсортированные по другим критериям (например, по длине). Как это сделать? При этом не хотелось бы делать копию данных из m_dic.
1.9K
30 июня 2005 года
sercher
60 / / 21.03.2003
Если надо сохранять порядок, то можно завести параллельный контэйнер, а котором хранить индексы на словарь в отсортированном порядке.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог