💎/C++
[C++] 배열복사 memcpy, copy
dar0m!
2020. 3. 23. 04:42
memcpy
#include <string.h> // C++ 에서는 <cstring>
void* memcpy(void* destination, const void* source, size_t num);
예제
memcpy(arr, tarr, sizeof(arr));
copy
#include <algorithm>
copy(initArray, initArray + n, v.begin()); // initArray내용을 n만큼 v에 복사
copy(v.begin(), v.end(), v2.begin()); // v의 내용을 v2에 복사
상세
template<class InputIterator, class OutputIterator>
OutputIterator copy (InputIterator first, InputIterator last, OutputIterator result)
{
while (first!=last) {
*result = *first;
++result; ++first;
}
return result;
}
예제
#include <iostream>
#include <algorithm> // copy
#include <vector> // vector
using namespace std;
int n = 7;
int main() {
vector<int> v(n);
int initArray[] = { 10,20,30,40,50,60,70 };
copy(initArray, initArray + n, v.begin());
cout << "v contains:";
for (vector<int>::iterator it = v.begin(); it != v.end(); ++it)
printf("%d ", *it);
// vector<int> v2; 크기가 없어서 복사 실패
vector<int> v2;
v2.resize(n);
copy(v.begin(), v.end(), v2.begin());
vector<int>::iterator iter = v2.begin();
printf("\n%d", iter[3]);
return 0;
}
실행결과