首页 > 在构造函数初始值列表中使用 new 是什么意思?类似 :file(new vector<string>)

在构造函数初始值列表中使用 new 是什么意思?类似 :file(new vector<string>)

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

【热门文章】
【热门文章】