std::map изменяет порядок по умолчанию

У меня есть текстовый файл, содержащий параметры namename, settingsvalue и UserName с разделителями табуляции. В текстовом файле у меня более 100 настроек по умолчанию. Если какой-либо пользователь изменит настройки по умолчанию, я не буду перезаписывать настройки по умолчанию новыми настройками. Вместо этого я добавил новую запись, указав имя пользователя. При получении данных, изначально я загружаю настройки по умолчанию один контейнер карты (строка, строка). (имя параметра - это ключ, значение параметра - это значение) Затем я загружаю определенные пользовательские настройки в другую карту. И переопределение карты по умолчанию с пользовательской картой, используя приведенный ниже код.

for(it=usrMap.begin();it!=usrMap.end();it++)
{
    defMap[it->first]=it->second;
}  

Текстовый файл содержит данные в определенном порядке. Это не отсортировано по алфавиту. При печати значений карты по умолчанию мне нужны данные в порядке, указанном в текстовом файле. По какой-то причине я не могу упорядочить название настроек. Как я могу сделать это, используя карту?

1 ответ

std::map нельзя сделать стабильным; он будет "сортировать" элементы, используя хэш-функцию. если порядок важен, вы можете сохранить упорядоченные ключи в векторе (например) и получить доступ к карте в порядке, предложенном вектором.

Другие вопросы по тегам