2016-06-14 1 views
0

Карта неявно сортирует элементы в ней, но есть ли способ заставить карту сортировать элементы без учета регистра?Сортировка нечувствительности к карте

используя этот кусок кода

map <string , string> m; 
m["Axion"] = "second"; 
m["Beta"] = "third"; 
m["alpha"] = "first"; 

for(auto &x : m){ 
    cout << x.second << endl; 
} 

это будет:

second 
third 
first 

дуэт с прописными буквами, имеющими меньший код ASCII, чем символы нижнего регистра.

Есть ли способ, как заставить карту уладить это дело inensive так будет выводить

"first" 
"second" 
"third" 
+1

Обеспечить собственный компаратор для 'map' или изменить' станд :: string' с помощью 'basic_string' с' char_traits', которая делает нечувствительным сравнение – Jarod42

ответ

0

Параметр третий шаблон std::map<> функция сравнения, просто предоставить это делать регистрозависимости сравнение .. .

template< 
    class Key, 
    class T, 
    class Compare = std::less<Key>, 
    class Allocator = std::allocator<std::pair<const Key, T> > 
> class map; 
Смежные вопросы