C++Vector中push_back 的错误,求高手帮忙解决,在线等。

我写了一个从txt文件中读取字符的程序。首先这个程序有个叫word的类,类中含有储存word数据的string变量和计数器之后,我在主程序中定义了一个叫word类的容器,... 我写了一个从txt文件中读取字符的程序。首先这个程序有个叫word的类,类中含有储存word 数据的string变量和计数器

之后,我在主程序中定义了一个叫word类的容器,wordsbin.

之后我开始读取文件中的字符串,

首先,我先判断读入的字符串是否已经出现在了容器中,如果没有相同的字符串,则建立一个Word的临时变量,用于存储每一个字符串。并把它压倒容器中。(

之后出现内存溢出的错误。以下是编译错误内容。
0x200388f0 (这条信息是我后面cout出来的words对象的地址,证明读出无误。)
RUN FAILED (exit value 1, total time: 78ms)(程序到这里终止了,错误类型应该是内存溢出。)
我将上面的for循环部分去掉,将
word * words = new Word(word);
WordsBin.push_back(words);写在fin的语句下面,程序可以正常运行,但是在逻辑上,我需要先对容器内部数据进行判断。请教各位高手这个问题应该如何解决。谢谢
展开
 我来答
神一样的原稿师
2012-10-28 · 超过20用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:58.1万
展开全部
这个问题简单啦,你仔细看看你的 for 循环的第一条语句,也就是初始化语句 :

witer == WordsBin.begin( ) ;

你这里是将 witer 与 WordsBin.begin( ) 进行比较,而不是用 WordsBin.begin( ) 来初始化 witer
所以在 for 里面对 witer 所有使用都是非法的,自然会出错,改一改看看 。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式