gpt4 book ai didi

c++ - 通过引用传递 vector - 段错误 C++

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:43:51 25 4
gpt4 key购买 nike

我已经通过引用查找了传递 vector ,看起来我正在做的事情应该有效。我通过仅向 vector 分配 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,并且每次都减少它的值。我对其进行了测试,它只在 vector 中存储 3 个元素,但仍然出现段错误(核心转储)错误...

编辑:我还注释掉了 results[i] = temp; 并且效果很好。

最佳答案

通过引用传递 vector 是有效的。这是事实 :)在您的情况下不起作用的是您无法保证您的索引不会超过 vector 的末尾。你的代码必须保证每次你这样做

results[i] = temp;

, i 总是小于 results.size()。

关于c++ - 通过引用传递 vector - 段错误 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24443256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com