提示:不完全类型只能在优先的情况下使用,可以定义以这个类型作为函数的参数类型或者函数返回值类型,也可以定义这个类型的指针或者引用。
//文件functions.cc
#include <string>
#include <iostream>
#include <memory>
#include <vector>
#include <set>
#include <map>
#include <sstream>
#include "query.h"
#include <fstream>
using namespace std;
//file必须分配空间,管理内存
//动态内存使用之前必须先分配内存空间
Query::Query(ifstream &in):file(new vector<string>)
{
string line;
while(getline(in,line))
{
istringstream is(line);
file->push_back(line);
int n = file->size() - 1;//获取行号
string word;
while(is >> word)
{
shared_ptr<set<line_no>> & loc = wm[word];//这里必须引用
//如果查找发现没有这个词,那么新开辟空间
if(!loc)