vector push_back可能出错
2017-05-10 14:58
183 查看
最近项目上使用vector发现一个错误,在push_back时存储的数据出错。具体见代码:
自己调试时,你会发现存储的数据是-10,原因是在在调用push_back时调用了一次拷贝构造函数。ps 传入是指针时,不会调用拷贝构造函数。
http://bbs.csdn.net/topics/390437292
struct PP { int a; PP(int v) { a = v; } PP(PP &p) { a = - 10; } }; class AA { public : int a; AA(int v) { a = v; } AA(AA &aa) { a = -10; } }; int main() { std::vector<PP> v; std::vector<AA> vv; v.push_back(PP(1)); vv.push_back(AA(1)); }
自己调试时,你会发现存储的数据是-10,原因是在在调用push_back时调用了一次拷贝构造函数。ps 传入是指针时,不会调用拷贝构造函数。
http://bbs.csdn.net/topics/390437292
相关文章推荐
- c++ vector push_back 出错或者错误
- string vector: push_back() and back()
- 实战c++中的vector系列--assign() push_back() or insert()
- c++的赋值构造函数以及vector::push_back的问题
- vector的push_back函数时,Release版下运行会出错de原因
- vector表示二维数组,push_back()插入数据
- 关于vector push_back()与其他方式读取数据的效率对比
- vector<IplImage*>类型时push_back问题
- STL中vector的赋值,遍历,查找,删除,自定义排序——sort,push_back,find,erase
- vector的push_back()函数的赋值方式
- struct中包含vector<int>时,push_back的时候出现内存错误
- 使用vector::push_back时,Release模式发生错误void __cdecl _CRT_DEBUGGER_HOOK(int _Reserved)
- 论Java的ArrayList.add(e)和C++的vector.push_back(e)的区别
- C++ vector的push_back
- vector push_back 是否调用构造函数
- STL:vector中push_back实现斐波纳契数列计算
- STL中vector容器begin(),end(),push_back()等相关函数
- vector和dequeue的push_back比较
- replace,push_back,vector:约瑟夫环精简迷你版
- vector:push_back时的对象构造