Мне нужно найти пару ключ / значение на карте, но из-за того, как карта заполнена, по какой-то причине map::find()
не работает.
Данные, с которых он читает, можно свести к
Key1,a,b,c
Key2,a
Key3
Key4,a,b
С этим я мог бы распечатать все эти данные, используя цикл итератора, но map::find()
не работает с Key3
или Key4
.
Данные собираются из файла как таковые:
file.open("input.txt");
std::string line;
std::string key;
while(getline(file,line,','))
{
key = line;
getline(file,line);
m[key]=line;
}
Который может быть напечатан с:
for(auto it = m.begin(); it != m.end(); ++it)
{
std::cout<<it->first<<","<<it->second<<std::endl;
}
Выход:
Key1,a,b,c
Key2,a
Key3
Key4,a,b
Но по какой-то причине Key3
и Key4
не существуют согласно map::find()
.
Я попытался проверить биты ошибок, вручную установив значение для Key3
, кажется, ничего не работает, что позволяет мне использовать map::find()
для значений после Key3
. (map :: find () возвращает map.end () для этих значений)
Я почти уверен, что это из-за того, как я собираю данные, особенно потому, что Key3
не имеет запятой, но я должен оставить ее в таком виде.