我在把C++primer中的433页代码照着敲到vs2015后,出现以下问题。
#include<vector> #include<string> #include<map> #include<memory> #include<set> class QueryResult; class TextQuery { public: using line_no = std::vector<std::string>::size_type; TextQuery(std::ifstream&); QueryResult query(const std::string&) const; private: std::shared_ptr<std::vector<std::string>> file; std::map <std::string, std::shared_ptr<std::set<line_no>>> wm; }; TextQuery::TextQuery(std::ifstream &is) :file(new std::vector<std::string>) { std::string text; while (getline(is, text)) {//这里getline会标红,出现前面所述的错误 file->push_back(text); int n = file->size() - 1; istringstream line(text);//这里line会标红,报错:不允许使用不完整的类型 std::string word; while (line >> word) {//这里>>会标红:禁止显示状态 没有与这些操作数匹配的 ">>" 运算符 } } }
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...