Я следующий фрагмент кода:C++ поток и оператор >> старшинство
std::stringstream stream("ABC 123 CBA 321");
std::unordered_map<std::string, int> map;
std::string key;
И я пытаюсь прочитать данные, как это:
stream>>key>>map[key];
Что можно переписать в виде:
operator>>(stream, key).operator>>(map[key]);
Учитывая оба >>
и .
операторов имеет слева направо ассоциативность, может вам мольбу se объяснить почему map[key]
оценивает до key
читается из потока?
Печать карты:
for(auto& it : map)
{
std::cout<<it.first<<" "<<it.second<<std::endl;
}
Результаты в:
123
ABC 321
Да, есть пробел перед 123
Возможно, добавление примечания к строгому порядку оценки C++ 17 было бы неплохо. –
@ PatrickM'Bongo: Я не справился с этим. –