벡터 생성자

배열을 벡터로 복사하는 방법

벡터의 생성자에는 여러가지 종류가 있는데, 다른 컨테이너의 원소를 복사할 수 있는 생성자도 있습니다.

복사하고자 하는 컨테이너의 범위를 [begin, end) 라고 했을 때 begin과 end를 가리키는 Iterator를 생성자의 매개변수로 넣어주면 됩니다.

#include<iostream>
#include<vector>
using namespace std;

int main(){
   int arr[5] = {1,2,3,4,5};
   vector<int> v(arr,arr+5);

   for(int i=0; i<v.size(); i++)
        cout << v[i] << " "; // 1 2 3 4 5
}

만약에 배열이 아닌 다른 컨테이너를 복사하고 싶으면 아래와 같이 할 수 있습니다.

#include<iostream>
#include<vector>
#include<map>
using namespace std;

int main(){
    map<int,int> m;
    m[0] = 1, m[1] = 2, m[3] = 0;

    vector<pair<int,int> > v(m.begin(), m.end());

    for(int i=0; i<v.size(); i++)
        cout << v[i].first << " " << v[i].second << "\n"; // 0 1\n 1 2\n 3 0
}

벡터를 복사할 때는 더 간단합니다.

vector<int> v = {1,2,3,4,5};
vector<int> v2 = v, v3(v);
// v2, v3 모두 v와 같아짐

참고 : https://modoocode.com/178


© 2018. All rights reserved.

Powered by Hydejack v8.5.2