typedef basic_string<TCHAR> tstring;
typedef set<tstring> dictionary;
dictionary m_dic;
Stl
Код:
Затем в m_dic (через insert()) добавляется набор tstring.
Так вот, если я делаю такой цикл:
Код:
for (dictionary::iterator i = m_dic.begin();
i != m_dic.end();
i++)
{
здесь в *i перебираются строки в алфавитном порядке.
}
i != m_dic.end();
i++)
{
здесь в *i перебираются строки в алфавитном порядке.
}
Задача такая - оставить m_dic как есть (то есть не передавать Pred в определиении set для типа dictionary) - оставив тем самым естественную возможность получать строки из m_dic отсортированные в алфавитном порядке. Либо можно вообще отказаться от set - тем самым ухудшив операцию по добавлению новой строки. Но при этом нужно получить строки отсортированные по другим критериям (например, по длине). Как это сделать? При этом не хотелось бы делать копию данных из m_dic.
Если надо сохранять порядок, то можно завести параллельный контэйнер, а котором хранить индексы на словарь в отсортированном порядке.