Информация об изменениях

Сообщение Re: Вопрос по std::unordered_set от 22.09.2021 8:15

Изменено 22.09.2021 8:16 _agg

Re: Вопрос по std::unordered_set
Здравствуйте, _agg, Вы писали:

_>Вот простейший код с unordered_set:

_>
_>    std::unordered_set<std::string> us;
_>    us.insert("ACCOUNT");
_>    us.insert("MTSID");
_>    us.insert("OPERNAME");
_>    us.insert("OPERCODE");
_>    us.insert("CHECKID");
_>    us.insert("TRNID");
_>    us.insert("ACCEPT_CODE");
_>    us.insert("orderSum");
_>    for (auto& item : us) {
_>        std::cout << item.c_str() << std::endl;
_>    }
_>


_>После его запуска получаем вот такой результат:


_>OPERCODE

_>ACCOUNT
_>MTSID
_>OPERNAME
_>orderSum
_>TRNID
_>CHECKID
_>ACCEPT_CODE

_>Если внимательно посмотреть в какой последовательности вставляли, то при обходе контейнера видно что порядок нарушен, можно ли как то сохранить порядок вставки при обходе ?



Решил проблему оригинальной последовательности просто, положил и заполнил экземпляр std::list<std::unordered_set<std::string>::iterator>
Re: Вопрос по std::unordered_set
Здравствуйте, _agg, Вы писали:

_>Вот простейший код с unordered_set:

_>
_>    std::unordered_set<std::string> us;
_>    us.insert("ACCOUNT");
_>    us.insert("MTSID");
_>    us.insert("OPERNAME");
_>    us.insert("OPERCODE");
_>    us.insert("CHECKID");
_>    us.insert("TRNID");
_>    us.insert("ACCEPT_CODE");
_>    us.insert("orderSum");
_>    for (auto& item : us) {
_>        std::cout << item.c_str() << std::endl;
_>    }
_>


_>После его запуска получаем вот такой результат:


_>OPERCODE

_>ACCOUNT
_>MTSID
_>OPERNAME
_>orderSum
_>TRNID
_>CHECKID
_>ACCEPT_CODE

_>Если внимательно посмотреть в какой последовательности вставляли, то при обходе контейнера видно что порядок нарушен, можно ли как то сохранить порядок вставки при обходе ?



Решил проблему оригинальной последовательности просто, положил рядом и заполнил экземпляр std::list<std::unordered_set<std::string>::iterator>