본문 바로가기
C++

[C++] STL vector를 공부하자 (삽입, 삭제, 정렬)

by 여름코딩 2025. 1. 2.
반응형

오늘은 C++의 STL인 vector에 대해서 공부하자.

vector는 STL 중 '컨테이너'에 해당한다.

저번 시간에 Map에 대해서 공부했는데, 오늘은 vector에 대해서 공부하면서 배열과 어떻게 다른지 알아보자.



Vector란?

vector는 STL 중에서 컨테이너에 해당한다.

vector와 비슷한 것 중에는 배열이 있는데, 배열과 어떻게 다른지 알아보자.

우선 배열의 예제 코드를 보자.

int arr[10] = {1, 2, 3};

 

배열은 데이터 타입을 먼저 작성한 뒤 배열의 길이를 설정한다.

그리고 {} 안에 콤마로 구분하여 데이터를 저장한다.

for(int i=0; i<3; i++)
{
    cout << arr[i] << " ";
}
1 2 3

 

arr의 데이터를 출력하거나 사용하기 위해서는 인덱스를 활용하면 되는데, 0번째부터 시작한다.

위의 코드에서는 0, 1, 2번째 순서로 데이터를 출력한다.

1, 2, 3 순서로 저장했기 때문에 위와 같이 출력된다.

 

vector 생성하기

그럼 이번에는 vector 생성 방법을 알아보자.

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    vector<int> v;
    v.push_back(1);
    v.push_back(2);
    v.push_back(3);
    
    for(int i=0; i<3; i++)
    {
        cout << v[i] << endl;
    }
}

 

vector를 활용하기 위해서는 헤더 파일 vector를 추가한다.

그리고 생성은 아래와 같이 한다.

vector<데이터 타입> v;

 

vector를 먼저 작성한 뒤 데이터 타입을 작성하고 변수명을 작성한다.

데이터 타입을 한 번 작성하면 해당 벡터에는 데이터 타입과 일치하는 데이터를 저장해야 컴파일 에러가 발생하지 않는다.

 

데이터 삽입하기 push_back

데이터 삽입에는 push_back을 사용한다.

v.push_back(1);
v.push_back(2);
v.push_back(3);

 

push_back을 하게되면 순서대로 저장이 된다.

그러므로 위처럼 1, 2, 3을 push_back을 하면 1, 2, 3 순서로 저장된다.

 

데이터 삭제하기 erase

데이터 삭제에는 erase를 사용한다.

v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(4);
v.push_back(5);

v.erase(v.begin() + 3);

for(int i=0; i<4; i++)
{
    cout << v[i] << endl;
}
1
2
3
5

 

erase를 사용할 때는 v.begin() + 삭제 할 인덱스를 인자로 준다.

그럼 v[3]를 삭제하게 되어 삭제 후 데이터를 출력해보면 위와 같이 나타난다.

 

vector 정렬

vector 정렬에는 sort 함수를 활용한다.

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int main()
{
    vector<int> v;
    v.push_back(1);
    v.push_back(3);
    v.push_back(2);
    
    sort(v.begin(), v.end());
    
    for(int i=0; i<3; i++)
    {
        cout << v[i] << " ";
    }
    
    return 0;
}

 

정렬을 하기 위해 헤더 파일 algorithm을 추가한다.

그리고 sort 함수를 활용하는데, 인자로 vector의 첫 번째와 마지막을 준다.

sort(v.begin(), v.end()가 그 코드이다.

1 2 3

 

1, 3, 2 순서로 저장했던 데이터가 정렬 후 위와 같이 오름차순으로 출력됨을 알 수 있다.


오늘은 vector에 대해서 알아보았다.

vector의 생성, 데이터 삽입, 데이터 삭제 등을 하면서 배열과 어떻게 다른지 알아보면서 코드를 작성하면 좋겠다.

그리고 위의 코드를 작성하면서 오류가 발생하는 경우가 있을 것이다.

어떤 이유로 오류가 발생하는지 확실하게 파악하면서 코드 작성 연습을 하면 큰 도움이 될 것이다.

 

반응형