c++ primer 第十二章的文本查询程序,心里有些疑问
ostream& print(ostream& os, const QueryResult qr) {
//qr.lines 是指向set<line_no>的指针,这个set保存的是出现过的行号;
//假设第5行出现了它两次,那这个set只会保存一次这个第5行;
os << qr.sought << " occurs " << qr.lines->size() << " "
<< make_plural(qr.lines->size(), "tiem", "s") << endl;
for (auto num : *(qr.lines))
os << "\t(line" << num + 1 << ")"
<< *(qr.file->begin()+num) << endl;
return os;
}
在这个函数中,是输出 查找的单词,查找的单词出现的次数,和出现它的行的内容。
其中,它的次数,是用 qr.lines->size();来表示
假设第3行,有一个单词出现了2此,那这个set这里面也只会保存这个3(第3行)一次,那最后输出的时候,打印出来的次数,不就跟实际出现的次数不一样了吗?