gpt4 book ai didi

c++ - vector::insert 段错误

转载 作者:搜寻专家 更新时间:2023-10-31 00:46:32 24 4
gpt4 key购买 nike

我有这样一个类:

classA
{
public:
classA()
{
//Here I am doing something but nothing related to vector

}

void updateVec(int idx, int value)
{
//Here, I want to update vector vector based on args passed
myVec.insert(myVec.begin() + idx, value);

}

std::vector<int> myVec;
}

现在,我在插入语句中遇到段错误。我需要在某处初始化 vector 吗?

最佳答案

段错误意味着您正在尝试访问/写入尚未(尚未)分配的内存。在您的情况下,根据 idx 的值,myVec.begin() + idx 可以引用 vector 分配区域之外的内存。在插入之前,您需要确保您的 vector 至少可以容纳 idx 元素。 updateVec 应该检查 vector 的当前大小,如果它不够大,它应该调用 vector::reserve 来分配足够的空间以便插入新元素。

关于c++ - vector::insert 段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5028156/

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