gpt4 book ai didi

c++ - 删除 vector.end() 失败

转载 作者:行者123 更新时间:2023-11-28 00:17:04 25 4
gpt4 key购买 nike

<分区>

为什么使用 vector.erase(vector.end()) 会产生一个

Segmentation fault (core dumped)

使用此代码时:

#include <iostream>
#include <vector>
using namespace std;

void printMe(vector<int>& v){ for(auto &i:v) cout<<i<<" "; cout<<"\n"; }

int main() {
vector<int> c = { 1,2,3,4,5,6,7,8};
printMe(c);
c.erase(c.begin());
printMe(c);
c.erase(c.begin());
printMe(c);
// c.erase(c.end()); //will produce segmentation fault
// printMe(c);
return 0;
}

我对这些迭代器有点陌生,所以这让我措手不及。虽然我知道存在 vector.pop_back()。我很想知道究竟是什么原因造成的。

A link到程序。

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