从文件中读取multimap <int,string =“”>

时间:2016-05-19 13:11:40

标签: c++ dictionary

我需要从文件中读取multimap<int,string>,但我无法弄清楚如何操作。

ifstream in ("words.txt");
multimap<int, string> words;
int count = 0;
while (!in.eof()) {
        getline(in, words[count]);
        count++;
}

当我运行它时,我收到此错误error: no match for ‘operator[]’ (operand types are ‘std::multimap<int, std::__cxx11::basic_string<char> >’ and ‘int’) getline(in, words[count]); 我尝试使用in >> words[count],但它也没有用。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

multimap没有operator[]

如果使用C ++ 11,则可以使用insert的{​​{1}}方法或multimap

有关emplace文档和示例,请参阅here

答案 1 :(得分:0)

使用.insert()方法:

cplusplus reference

另外,如果你想在后续索引中使用每一对,你可能想要使用std :: vector和push_back()

答案 2 :(得分:0)

[]没有std::multimap运算符。 您必须以字符串形式读取一行,然后使用insert