본문 바로가기
오래된 글

C++ 벡터 특정 원소 지우는 방법 vector.erase()

by pagehit 2019. 4. 20.
반응형

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

반응형

댓글