分割错误:向量中的擦除功能
segmentation fault: erase function in vectors
我特别在接受s
和e
后出现段错误。
我已经尝试了很多来找到错误,但就是无法! 请帮忙!
基本上,我正在尝试删除位置pos
处的元素,然后显示向量,然后我正在删除位置范围内的所有元素(s, e)
,s
包含且e
排他。
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <ostream>
using namespace std;
int main() {
/* Enter your code here. Read input from STDIN. Print output to STDOUT */
int n;
vector <int> v;
cin >> n;
int ele;
for(int i = 0; i < n; ++i)
{
cin >> ele;
v.push_back(ele);
}
int pos;
int s, e;
cin >> pos;
v.erase(v.begin()+pos-1);
for(int c: v)
{
cout << c << " ";
}
cout << endl;
cin >> s;
cin >> e;
v.erase(v.begin() + s - 1, v.end() + e - 1);
for(int c: v)
{
cout << c << " ";
}
cout << endl;
return 0;
}
我认为这一行:
v.erase(v.begin() + s - 1, v.end() + e - 1);
应该是:
v.erase(v.begin() + s - 1, v.begin() + e - 1);
你不应该增加 end(( 迭代器。
相关文章:
- 引用一个已擦除类型(void*)的指针
- 擦除while循环中迭代的元素
- 在运行时处理类型擦除的数据-如何不重新发明轮子
- C++擦除(如果存在)
- 在映射擦除c++期间执行循环的次数
- 为什么擦除方法会影响结束方法
- C++ 字符串类擦除成员函数的时空复杂性
- 如何编写用于多映射插入和擦除功能的 API?
- 分割错误:向量中的擦除功能
- 为什么在功能内擦除元素后不列出更新?
- 标准::矢量的擦除功能
- 尝试在矢量上使用擦除功能时"no matching function for call"
- 向量擦除功能无法正常工作
- c++ std map 的擦除功能是否释放了指针键的内存?
- 为我的类实现擦除功能
- C++没有列表::擦除的匹配功能
- 使用擦除功能从字符串中删除字符 - C++
- 矢量擦除功能不工作(简单的代码)
- 矢量中的擦除功能不删除指针?
- 如何创建<wchar_t>具有擦除(size_t pos)方法的功能向量?