数据结构作业的一部分。
#include #include #include #include #include using namespace std; struct DocMes { int TF = 0; queuepos; }; typedef map> IndexMap; typedef map invertMap; string filename[11] = { "0","apple","cherry","grape","mangosteen","oorange","peach","pear","pineapple","pomelo","watermelon" }; void CreateIndex(IndexMap& index) { ifstream fileIn; for (int i = 1; i <= 10; i++) { string filepath = filename[i] + ".txt"; fileIn.open(filepath.c_str()); string temp; int posNum = 0; while (fileIn >> temp) { int k = 0; posNum++; index[temp][i].TF++; index[temp][i].pos.push(posNum); } fileIn.close(); } } void queryProcess(IndexMap& index) { string query; while (true) { cout << "Find your words:" << endl; cin >> query; if (index.find(query) == index.end()) { cout << "ERROR: Can't find " << query << " ! ,please check up your words" << endl; continue; } invertMap::iterator iter; iter = index[query].begin(); while (iter != index[query].end()) { cout << filename[iter->first] << ".txt : Tf=" << iter->second.TF << " ; pos = < "; while (!iter->second.pos.empty()) { cout << iter->second.pos.front(); if (iter->second.pos.size() > 1) { cout << " , "; } iter->second.pos.pop(); } cout << " >" << endl; iter++; } } } int main() { IndexMap invertIndex; CreateIndex(invertIndex); queryProcess(invertIndex); return 0; }
1)初次接触读入文件操作 2)该代码用到较多的map, map的创建:map map[key]返回的是value。
上一篇 你该醒悟了
下一篇 C语言程序设计(第4版)苏小红 课后程序参考7.3
版权所有 (c)2021-2022 MSHXW.COM
ICP备案号:晋ICP备2021003244-6号