class Query_result;
class Text_query {
public:
using line_no = vector<std::string>::size_type;
Text_query(ifstream&);
Query_result query(const string&) const;
private:
shared_ptr<vector<string>> file;
map<string, shared_ptr<set<line_no>>> wm;
};
Text_query::Text_query(ifstream &is) : file(new vector<string>) //这里
{
string text;
while (getline(is, text)) {
file->push_back(text);
int n = file->size() - 1;
istringstream line(text);
string word;
while (line >> word)
{
auto &lines = wm[word];
if (!lines)
lines.reset(new set <line_no>);
lines->insert(n);
}
}
}
就是单纯的字面意思,new一个vector<string>来初始化file。
构造函数的初始化列表
http://www.cnblogs.com/BlueTzar/articles/1223169.html