#include <string>
#include <iostream>
#include <list>
#include <vector>
#include <set>
#include <map>
//stringstream对象需要包含头文件sstream
#include <sstream>
using namespace std;
int main()
{
map<string,list<int>> word_linenumber;
string words;
int number = 0;
string word;
while(getline(cin,words))
{
++ number;
stringstream in(words);
while(in >> word)
word_linenumber[word].push_back(number);
}
for(const auto & i : word_linenumber)
{
cout << i.first << ":";
for(auto j : i.second)
cout << j << " ";
cout << endl;
}
return 0;
}
运行结果:
i am a good
boy and you
are a good boy
too so you are a
good boy
a:1 3 4
am:1
and:2
are:3 4
boy:2 3 5
good:1 3 5
i:1
so:4
too:4
you:2 4
总结:list也可以使用push_back()在末尾添加元素