C++/Library 2021. 3. 12. 17:31

vector

  • <vector> 라이브러리

기본 예제

  • push_back 함수로 벡터의 맨 뒤에 원소를 추가할 수 있다.

  • foreach로 반복문을 작성할 수 있다. (iterator가 존재하기 때문에 사용 가능)

    #include <iostream>
    #include <vector>
    
    int            main()
    {
      using namespace std;
    
      vector<int> vec;
      for (int i = 0; i < 10; ++i)
        vec.push_back(i);
      for (auto& e : vec)
        cout << e << ' ';
      cout << endl;
    }
    
    /* stdout stderr
    0 1 2 3 4 5 6 7 8 9
    */

멤버 함수

size()capacity()

  • size는 실제 사용하고 있는 공간이고, capacity는 할당받은 전체 공간이다.

    #include <iostream>
    #include <vector>
    
    int     main()
    {
        using namespace std;
    
        vector<int> v{ 1,2 ,3 };
    
        v.resize(2);
    
        for (auto& e : v)
            cout << e << ' ';
        cout << endl;
    
        cout << v.size() << ' ' << v.capacity() << endl;
    
        int* pv = &v[0];
        cout << pv[2] << endl;
    }
    
    /* stdout stderr
    1 2
    2 3
    3
    */

reserve()

  • 공간을 미리 할당받는 것

    #include <iostream>
    #include <vector>
    
    int     main()
    {
      using namespace std;
    
      vector<int> v{ 1,2 ,3 };
    
      v.reserve(100);
    
      for (auto& e : v)
        cout << e << ' ';
      cout << endl;
    
      cout << v.size() << ' ' << v.capacity() << endl;
    }
    
    /* stdout stderr
    1 2 3
    3 100
    */

참고

'C++ > Library' 카테고리의 다른 글

C++ chrono  (0) 2021.03.16
C++ assert  (0) 2021.03.12
C++ tuple  (0) 2021.03.12
C++ array  (0) 2021.03.11
C++ typeinfo  (0) 2021.03.11