c++ - 向量中向量的 push_back 导致 bad_alloc
问题描述
我正在处理一个大型项目,并且有一条类似于newVec.push_back(vec[i]);
导致错误的行terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc
。
但是,我无法在最小化的示例中重现该错误,但代码看起来与此类似:
#include<vector>
#include<iostream>
using namespace std;
class MyClass {
public:
vector<int> vec{1,2,3};
};
class MyClassTwo {
public:
vector<int> vec;
};
vector<int> doSometing(const vector<int> vec) {
vector<int> newVec;
for(int i = 0; i < vec.size(); i++) {
newVec.push_back(vec[i]); //causes: terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc
}
return newVec;
}
int main() {
MyClass c;
MyClassTwo cTwo;
cTwo.vec = doSometing(c.vec);
cout << cTwo.vec[0] << endl;
}
有人有想法,我应该检查什么?
解决方案
推荐阅读
- docker - 为什么我无法从本地连接 redis cli?
- reactjs - NavLink 不添加 activeClassName (react-router-dom v5.2.0)
- firebase - 如何在 Stream Builder Flutter 上更改元素颜色
- python - 如果元素是元组,numpy 查找均值
- javascript - 如何根据属性过滤 JSON 数据?
- python-3.x - 尝试在python中反转字节数组(来自十六进制)
- assembly - 当两者都用于计算值时,LEA 或 MOV 有什么区别?
- r - R; plot basic:multicharts:在oma边界处绘制一个框
- docker - 检索在映像构建期间删除的文件
- c# - 如何总结 rdlc 报告中每组中列的最后一行值?