2 baidu 34303489 baidu_34303489 于 2016.04.05 00:59 提问

大文件里查找单词的问题

RT•Definea function that, given an istream& and a constvector&, produces a map> holding each string (keyword) and the numbers of the line on which thestring appears. The line number of the first line is 1. •Printin the order of ascending keyword.•Runthe program on a text file with at least 10000 lines looking for no fewer than10 keywords.窝只是想问问怎么在一个vector里查找另一个……!求教!!

keywords.txt用来存放需要寻找的关键词
text是一个大文本
result 是存放结果的txt
然后要做的就是寻找keywords.txt里的关键词在text.txt里出现的行数
我的程序已经能实现的部分是把keywords.txt里的单词分割,把text.txt一行一行分割
就是不清楚怎么查找……还有存入map也辛苦大家讲一下辣


#include
#include
#include
#include
#include
using namespace std;
int main()
{ ifstream inf1("F:\keywords.txt");
ifstream fin("F:\text.txt");
ofstream fout("F:\result.txt");
string word; vector vts;vector vts2;int i=0;int j=0;
int cnt=0;int cnt2=0; while (inf1>>word)
{
cnt++;
vts.push_back(word);
}

/********************************************/

cnt=0;while (getline(fin,word))
{
cnt2++;
vts2.push_back(word);
}

/**********************************************/

for(i=0;i {
for(j=0;j {
vector::iterator x;
if ( (x=std::find(vts2.begin(),vts2.end(),vts[j])) !=vts2.end() )
cout<<i<<"\n";
}
}
inf1.close();
fin.close();
fout.close();
return 0;
}

1个回答

qq423399099
qq423399099   Ds   Rxr 2016.04.05 09:35
#include<vector>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<map>
using namespace std;

void main()
{
    vector<int> a;
    a.push_back(3);
    a.push_back(4);
    a.push_back(5);
    vector<int>::iterator it;
    it = std::find(a.begin(), a.end(), 3);
    if(it == a.end())
        cout << "未找到元素3" <<endl;
    else
        cout << "找到了元素3" <<endl;

    map<string, int> b;
    b["aa"] = 5; //插入了key为"aa",value为5的键值对
}
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
给定一个file, 查找出里面出现频率最高的10个单词
之前已经总结了给定一组数字, 如何在线性时间内找到第k小的数字。 这两个问题看似有十分subtle的关系。 很显然这里是找最大的前K个单词。 单词相当于卫星数据, 直接对单词的键值, 即频率排序啦。  现在我们对这个求top K frequent words做一个小小的总结。 方法一: minheap + external sort(即小顶堆 + 外部排序) 之所以使用外部排序, 是因为考
在一行字符串里查找一个单词
//在一个字符串里查找对应的单词 #include #include int main() { char str[100],A[100][100]; int i,j,row=0,col=0,flag=0;   gets(str);   for(i=0;str[i]!='\0';i++)// i am a student   {     if(str[i]!=' ')  
linux中,查找大文件及清除其内容的方法
转:http://wangbixi.com/x4360/ linux操作系统中,经常会遇到磁盘空间满的问题。如下图1所示: 图一: 磁盘空间满,很多情况下是由于大文文件引起的,若文件不大,则一定是文件过多引起的,至于引起这个更深一层的原因,先不探讨。怎么查看大文件所在的路径,linux中有一个命令,叫du,先贴命令:du -m --max-depth=1 或者du -h --max-dep
trie树统计单词出现的个数
trie树统计单词出现的个数 http://kenby.iteye.com/blog/952489
从文件中查找关键字算法
// (1)源文件为一个txt文档,内容为符号串; // (2)给定一个关键字文件,内容为自定义的关键字(注:关键字有若干个,用空格隔开); // (3)依据关键字文件中的关键字在源文件中进行检索判断,得到关键字 #include"stdio.h" #include"string.h" #include"malloc.h" #define BUFLEN 2048
在文件中查找单词及其行数
import java.io.*; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Demo3 { public static void main(String[] args) throws IOException { File fil
单词字典中对兄弟单词查找算法(C++实现)
先输入字典中单词的个数,再输入n个单词作为字典单词。 输入一个单词,查找其在字典中兄弟单词的个数 再输入数字n#include <iostream> #include <vector> #include <algorithm> #include <string> using namespace std; int main() { vector<string>s;//用来存储单词字典中的单
算法系列-大数据面试题-大文件中返回频数最高的100个词
1.题目描述 有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M,要求返回频数最高的100个词 2.思考过程 (1)参见我的其他大数据面试题博文。此处1G文件远远大于1M内存,分治法,先hash映射把大文件分成很多个小文件,具体操作如下:读文件中,对于每个词x,取hash(x)%5000,然后按照该值存到5000个小文件(记为f0,f1,...,
linux 在vi编辑器里面有一个查找某个单词
首先要进入命令模式(按ESC退出INSERT模式) 然后输入:/单词
Java 实现大文件统计字母出现个数
简述: 在100M的文件中用多线程实现查找里面次数出现最多的字母 1. 数据生成代码 package com.anialy.test.io; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException;