반응형
C++ 벡터에서 특정원소 지우는 방법
erase(int position)
해당하는 위치의 원소를 지운다.v.erase(v.begin()+4)
는 벡터 v
의 다섯 번째 원소를 지운다.
erase(int start, int end)
해당하는 범위의 원소를 지운다. start
는 포함하고, end
는 포함하지 않는다.v.erase(v.begin()+2, v.begin()+5)
는 세 번째부터 다섯 번째 까지의 원소를 지운다.
예제
https://www.hackerrank.com/challenges/vector-erase/problem
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
/* Enter your code here. Read input from STDIN. Print output to STDOUT */
int N, x, a, b, tmp;
cin >> N;
//vector<int> v(N);
vector<int> v;
for(int i = 0; i < N; i++) {
cin >> tmp;
v.push_back(tmp);
}
cin >> x;
v.erase(v.begin()+(x-1));
cin >> a >> b;
v.erase(v.begin() + (a-1), v.begin() + b -1);
cout << v.size() << endl;
for(int i = 0 ; i < v.size() ; i++) {
cout << v[i] << " ";
}
return 0;
}
참고
2019/04/20 - [C++] - C++ vector를 이용해 정렬하는 방법
2019/04/19 - [C++] - C++ 벡터를 이용해서 길이가 다양한 이차원 배열 구현하기
2019/04/04 - [C++] - C++ | #include <bits/stdc++.h> 헤더파일이란 무엇인가?
2019/04/02 - [C++] - C++ 강의 | 조건문 if와 if - else 문 그리고 if - else if -else 문
2019/04/02 - [C] - C/C++ printf 함수에서 실수 소수점 자리와 너비를 지정하는 방법 | 숫자 정렬해서 출력하기, 소수점 아래 자리수 지정하기
2019/04/01 - [C++] - C++ 강의 | 기본 데이터 타입과 형식지정자 그리고 C++의 출력과 입력 scanf와 printf
반응형
댓글