<vector>

Yongs12 ㅣ 2023. 7. 2. 21:46

c++에는 Standard Template Library가 있다.

통칭 STL은 자료구조, 알고리즘을 쓰기 쉽게 라이브러리형식으로 만들어둔 클래스들이다.

또한 Template로 만들어져 있기에 어떠한 데이터라도 다룰 수 있게 만들어져 있다.

 

 

vector

동적 배열로서 정해둔 용량을 초과하면 새로운 메모리 공간에 용량을 늘려서 할당하고 기존 배열을 복사한다.

 

std::vector의 사용 함수들 ( 더있음)

#include <iostream>
#include <vector>

int main()
{
    std::vector<int> intVec;

    // 선택한 자료형의 데이터를 삽입
    intVec.push_back(5);

    // 마지막 요소 제거
    intVec.pop_back();

    // 삽입된 데이터의 요소 갯수
    const size_t size = intVec.size();

    // 현재 동적배열의 용량
    const size_t capacity = intVec.capacity();

    // 동적배열이 비었는지 여부 확인
    const bool isEmpty = intVec.empty();

    // 동적배열의 사이즈를 조정한다.
    intVec.resize(10);

    // 동적배열의 사이즈를 조정하면서 두번 째 인자로 값을 채울 수 있음.
    intVec.resize(10, 0);

    // 동적배열의 용량을 설정할 수 있음.
    intVec.reserve(10);
    
    // 동적배열의 메모리를 반환함
    const int* temp = intVec.data();
    
    // 동적배열의 첫번째 요소를 반환함
    const int front = intVec.front();

    // 동적배열의 마지막 요소를 반환함
    const int back = intVec.back();

    // 동적배열의 모든 요소 제거
    intVec.clear();

    return 0;
}

 

 

함수 시간 복잡도 설명
push_back O(1) 벡터의 뒤에 요소 추가
emplace_back O(1) 벡터의 뒤에 요소 추가 (생성자 호출)
insert(iterator) O(n) 특정 위치에 요소 삽입
pop_back() O(1) 벡터의 뒤에서 요소 제거
erase(iterator) O(n) 특정 위치의 요소 제거
front() O(1) 벡터의 첫 번쨰 요소 반환
capacity() O(1) 벡터의 용량 반
clear() O(n) 모든 요소 제거

'C, C++' 카테고리의 다른 글

<list>  (0) 2023.07.04
iterator 반복자  (0) 2023.07.03
Template  (0) 2023.07.01
이동 생성자, R-value reference ( 오른값 참조 )  (0) 2023.06.30
30. 변환 생성자  (0) 2023.06.20