BLOG main image
분류 전체보기 (27)
스윙 (5)
스터디 (14)
외부링크 (2)
미분류 (2)
(4)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
2011. 5. 24. 08:54
[]

제너릭 copy함수를 사용하려면, [시작값], [종료값], [복사받을시작값]을 지정하는데
복사받을 값은 복사원본의 사이즈를 미리알고 있어야한다.
그래서
백터컨테이너를 이용할때 [복사받을시작값].reserve()를 이용해 미리 공간확보해야하는줄 알았다.

#include <vector>
using namespace std; int _tmain(int argc, _TCHAR* argv[])
{
 vector<int> n1,n2;
 
 n1.push_back(1); ///< 복사할 데이터
 n1.push_back(2);
 n1.push_back(3);

 n2.reserve(n1.size()); ///< 공간확보
 
 copy(n1.begin(), n1.end(), n2.begin());
 
 return 0;
}

위와 같이 작업하면


뷁...
n2.resize(n1.size());

resize를 이용하자
혹은,
insert_iterator를 이용하자
 copy(n1.begin(), n1.end(), insert_iterator<vector<int> >(n2, n2.begin()) );
insert_iterator는 현재 아무값도 저장되지 않은 백터도 begin()되는 공간을 생성해서 넣어준다.