'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()되는 공간을 생성해서 넣어준다.