通过引用传递矢量-分割错误c++
Passing Vector by Reference- Segmentation Fault C++
我已经通过引用查找了传递向量,似乎我正在做的事情应该起作用。我测试了这一点,只给向量分配1个值,我仍然得到分割错误。任何帮助或想法为什么会发生这种情况将不胜感激。
伪代码:
template <class X>
void class<X>::function(const X &A, const X &B, vector<X>&results) const {
int temp = A;
int i = 0;
while (temp > B){
if(another_function(temp)){
results[i] = temp;
i++;
}
}
}
基本上,A总是比B大,所以每次都发生while循环。"another_function"接受一个int值,如果满足某些条件则返回true,并每次减小其值。我对它进行了测试,它只会在向量中存储3个元素,并且仍然得到分割错误(核心转储)错误…
编辑:我也注释掉了results[i] = temp;
,它工作得很好
通过引用传递向量有效。这是事实:)在这种情况下不起作用的是,你不能保证你的索引不会超过向量的末尾。您的代码必须保证每次执行
时results[i] = temp;
, I总是小于results.size().
除非您为vector
预留了足够的容量,否则您应该使用push_back
。
替换行
results[i] = temp;
results.push_back(temp);
相关文章:
- C++映射分割错误(核心转储)
- 由cin中的字符串中未捕获空白引起的分割错误
- 删除映射和分割错误中的一个过去结束元素
- 在指向函数中读取变量时出现分割错误
- 在链表中的第 n 位插入显示分割错误
- 较高值 n 的分割错误(例如 n=999997)
- 尝试通过memcpy复制大尺寸浮点向量时的分割错误
- 分割错误:向量中的擦除功能
- 向量向量的分割错误
- 我在C++中编写了一个方法来打印树类的预序,但它显示了分割错误
- C ++分割错误,为什么使用"long long"我没有得到答案?
- 在尝试使用递归查找集合子集的总数时,我遇到了分割错误
- 分割错误 11:尝试使用 cin 输入 B[1] 时
- 集合布局上的 Qt 分割错误
- 高达20亿的筛子会产生分割错误
- 对向量使用推回函数时的分割错误
- 绘制精灵会导致分割错误
- 将矢量的整数内容打印为字符串会导致分割错误
- 分割错误:使用向量时为 11 c++
- 结构的分割错误错误