nnpc.net
当前位置:首页 >> C++VECtor中push_BACk 的错误,求高手帮忙解决,在线等。 >>

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

这个问题简单啦,你仔细看看你的 for 循环的第一条语句,也就是初始化语句 :witer == WordsBin.begin( ) ;你这里是将 witer 与 WordsBin.begin( ) 进行比较,而不是用 WordsBin.begin( ) 来初始化 witer 所以在 for 里面对 witer 所有使用都是非法的,自然会出错,改一改看看 .

请检查在调用m_ControlObj->m_MachineReadyOrderlist.push_back(or1);时m_ControlObj指针是否为空.

仔细检查一下,应该是没有定义复制构造函数或是定义错了,要不就把Computer类的声明和实现贴出来.

vector<int> getVector()返回值为list的副本,而非list;所以,void pushNum(A* a)中: 第一行,a->getVector()创建一个vector<int>临时变量,临时变量调用push_back(1),list仍为空,之后临时变量销毁; 第二行,a->getVector()创建另一个vector<int>临时变量,由于list为空,该临时变量亦为空,之后临时变量调用at(0)越界出错.

#include <iostream>#include <vector>using namespace std;int main(){ vector<int> num; int count,value,avgg=0,sum=0; cout<<"How many? "; cin>>count; for (int i = 0; i <count; i++) { cout<<"enter value :"; cin>>value; num.push_back(value);

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

你先定义一个vector<double > d;对象存储每行 for(i=0;i<col;i++)d.push_back(a[i]);再test.push_back(d); 就可以了

代码,这样你就不是很了解.可以明确告诉你,push_back的不改变的元素本身的价值,但他们可能会改变内存中的地址.动态矢量的大小,规模是不够的,它会重新开辟更多的内存,将原来的内容复制到新的地址.但是,同样的父亲,点到一个无效的地址,甚至有效,这意味着不同的原创.

如果我没有理解错误的话,3和4行实现了同样的操作,就是把name这个字符串放到attrNameArray这个容器里面,然后吧这个容器放到m_clAttrNameArray.如果写这个代码的人是使用过STL库的,那么我可以推断push_back是在容器的最后放入

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.nnpc.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com