7.3产生一个交叉引用表
1.缺省参数 vectorfind_words(const string&)=split
以下调用形式均可
xref(cin);
xref(cin,find_words);
2. ret[it].push_back(line_number);
以it为键,将line_number做为值存储在映射表中
3.实现思路:
假设输入第一行
- I am Chinese 行数1
- 用一个向量存贮 I/am/Chinese/
- 映射表存贮 I-1/am-1/Chinese-1/
输入第二行 - I am Chinese forever 行数2
- 向量存贮 I/am/Chinese/ I/am/Chinese/forever /
- 映射表存贮 I-1/am-1/Chinese-1/ I-2/am-2/Chinese-2/forever -2/
以此类推
#include <iostream>
#include <vector>
#include <map>
#include <string>
#include <algorithm>
#include <cctype>
using namespace std;
//7.3产生一个交叉引用表
//以行输入单词,想知道单词出现的所有行的行编号
bool space(char c)
{
return(isspace(c));
}
bool not_space(char c)
{
return !isspace(c);
}
vector<string>split(<