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

我写了一个从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的语句下面,程序可以正常运行,但是在逻辑上,我需要先对容器内部数据进行判断。请教各位高手这个问题应该如何解决。谢谢

这个问题简单啦,你仔细看看你的 for 循环的第一条语句,也就是初始化语句 :

witer == WordsBin.begin( ) ;

你这里是将 witer 与 WordsBin.begin( ) 进行比较,而不是用 WordsBin.begin( ) 来初始化 witer
所以在 for 里面对 witer 所有使用都是非法的,自然会出错,改一改看看 。
温馨提示:内容为网友见解,仅供参考
无其他回答

C++Vector中push_back 的错误,求高手帮忙解决,在线等。
这个问题简单啦,你仔细看看你的 for 循环的第一条语句,也就是初始化语句 :witer == WordsBin.begin( ) ;你这里是将 witer 与 WordsBin.begin( ) 进行比较,而不是用 WordsBin.begin( ) 来初始化 witer 所以在 for 里面对 witer 所有使用都是非法的,自然会出错,改一改看看 。

关于c++ vector 的push_back问题
再构建一个vector<string> m_stra while( Module32Next( hModuleSnap, &me32 ) ){ m_stra.push_back(me32.szModule);cout<<"me32"<<me32.szModule<<" ";} 如果此次成功证明你的链表类有问题,看看m_dlls是不是private要不就把 m_processInfo.Get(i).m_dlls.push_back(me32.szModule)...

c++中vector封装的push_back函数调用还是报错
仔细检查一下,应该是没有定义复制构造函数或是定义错了,要不就把Computer类的声明和实现贴出来。

C++ STL中vector容器push_back和emplace_back误区提醒
C++ STL中的vector容器在添加元素时,通常我们使用push_back或emplace_back。有人认为emplace_back是C++11后引入的,性能优于push_back,因此推荐使用。但实际上,两者在性能和兼容性上的差异并不显著。尽管emplace_back引入了原地构造的概念,但其本质是通过右值引用接收元素。push_back也有一个右值引用的...

vector中下标操作符与push_back的一些疑惑
要想同时改变vector的容量和大小,你可以用push_back自动加,也可以用resize来自定义大小,比如v.resize(5)就是把这个vector的大小变成5。如果你 v.resize(2);v.push_back(1);v[1] = 2;那么这个vector的元素就变成{0,2,1} cout << v[0] << endl; \/\/这里的结果就是0 cout << v[1]...

vector push_back问题
不支持这样定义,因为你还没重载运算符=。应该这样定义vector<int **>maps然后push_back 注意line应该设成全局变量或者动态分配的。

vector push_back问题
编译debug版本,F5调试运行,出错后点重试,然后看调用堆栈信息

...的错误 请各位帮忙解决一下 为什么 “push_back”不能运行啊_百度知...
相关的代码贴上来 比如35,36行 --- 还需要看 NAMEVEVECTOR 和 ID 类的定义。错误之一是ID类没有接受两个参数的构造函数。还有一个必须看 NAMEVEVECTOR 定义才知道。

c++ vector .push_back
你所指的跟踪是什么?在第二段代码里,确实成功push back了3次。我怀疑你只是看到了调试器里只显示出一个,但不代表vector大小为1。你可以在最后assert a的大小进行验证。还有,你代码中有些不必要的copy操作,影响性能。main函数返回1的意义是什么?通常0用来表示没有错误,不返回任何值,那么默认返回...

C++ vector容器问题。push_back函数
编译器的安装目录下,找到vc 再找到include ,再找到vector 的定义 ,就找到该函数的定义了

相似回答