gpt4 book ai didi

在任意位置插入/放置元素时,C++ vector 会出现段错误

转载 作者:行者123 更新时间:2023-11-28 02:16:52 25 4
gpt4 key购买 nike

<分区>

当我尝试插入位置 3 时,以下给出了一个段错误

vector<int> a;
a.insert(a.begin(), 10);
a.insert(a.begin()+1, 9);
a.insert(a.begin()+3, 7);

我认为这是因为我超出了容量,事实上这段代码有效:

vector<int> a=vector<int>(3);
a.insert(a.begin(), 10);
a.insert(a.begin()+1, 9);
a.insert(a.begin()+3, 7);

...但是如果您尝试这样做,它会像第一个一样导致段错误,尽管容量正在正确更新

vector<int> a=vector<int>(3);
a.insert(a.begin(), 10);
a.insert(a.begin()+1, 9);
a.insert(a.begin()+3, 7);
cout<< a.capacity() << endl;
a.reserve(100);
cout<< a.capacity() << endl;
a.insert(a.begin()+16, 4);

这似乎是 C++ vector 实现的一个奇怪行为,不是吗?我做错了什么?

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