C++ 정리

[C++] vector 주로 사용하는 것 정리

1minair 2022. 11. 13. 21:30
728x90

[C++] vector란?

: 동적으로 메모리가 할당되는 배열.

컴퓨터에서 벡터란 1차원 배열의 데이터를 뜻한다.

 

★ 대부분의 STL 이 그렇듯. template을 사용하기 때문에 데이터 타입은 지정 가능하다.

 


<vector> 헤더파일을 추가해야함

>> #include <vector> 

 

선언 : vector<자료형> 변수명

 ex. vector<int> v1;     

       vector<string> v2;

 

vector의 멤버 함수

  • v.push_back(value) : 마지막 원소 뒤에 value값 삽입
  • v.insert(2, 3, 4)
    • 2번째 위치에 3개의 4값을 삽입 (뒤엣값들은 뒤로 밀린다.)
  • v.insert(2, 3)
    • 2번째 위치에 3의 값을 삽입
  • v.pop_back() : 마지막 원소 제거
  • v.clear() : 모든 원소 제거
    • 원소만 제거하고 메모리는 남아있다(size만 줄어들고 capacity는 남아있다.)
  • v.empty() : 벡터가 비어있으면 true 반환

 

  • v.size() : 벡터의 원소의 갯수를 반환
  • v.capacity() : 할당된 공간의 크기를 반환
    • 크기는 자료형의 크기를 고려x
    • 해당 자료형 크기만큼 몇 개만큼 공간이 할당 되었는지를 말함
#include <iostream>
#include <vector>

using namespace std;

int main()
{
    vector<int> v(5);
    
    v.clear();
    std::cout << "vector size : " << v.size() << endl;
    std::cout << "vector capacity : " << v.capacity() << endl;
    
    return 0;
}

- size값 : 0,   capacity값 : 5

  • v.front() : 첫번째 원소 참조
  • v.back() : 마지막 원소 참조
  • v.begin() :첫번째 원소를 가리킴 (iterator와 사용)
  • v.end() : 마지막의 다음을 가리킴 (iterator와 사용)
  • v.swap(another_v)
    • 벡터와 another_v 벡터의 capacity를 바꾸어준다. (원소들도 모두 바꾸어 준다.)
    • 벡터의 capacity를 없앨때 (메모리를 해제 해 주고 싶을 때) capacity가 0인 임시 객체를 만들어서 스왑을 해준다.