BLOG main image
분류 전체보기 (27)
스윙 (5)
스터디 (14)
외부링크 (2)
미분류 (2)
(4)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
'2011/05'에 해당되는 글 1건
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()되는 공간을 생성해서 넣어준다.
prev"" #1 next