복사

    [C++] vector (벡터) 복사하기

    반복자#include #include using namespace std;void printVector(const vector v) { cout vect1{1, 2, 3, 4}; vector vect2; for (int i = 0; i  출력Old vector elements are : 1 2 3 4 New vector elements are : 1 2 3 4 The first element of old vector is :2The first element of new vector is :1할당 연산자 =(Assignment Operator =)#include #include using namespace std;void printVector(const vector v) { ..

    C# 배열 복사

    1. Array.CopyTo(Array destArray, int index) // srcArray의 데이터를 인자로 전달한 destArray에 저장한다. // destArray의 마지막 인자의 인덱스 부터 저장된다. byte[] sourceArray = new byte[10]; // 복사를 할 배열 byte[] destinationArray = new byte[10]; // 복사를 당할 배열 // 복사 할 배열의 데이터를 삽입 for (int i = 0; i < 10; ++i) sourceArray[i] = (byte)i; // 복사하기전 복사를 당할 배열의 데이터를 출력 for (int i = 0; i < 10; ++i) Console.Write($"{destinationArray[i]} "); //..

    C++ 얕은 복사 깊은 복사 (Shallow/Deep Copy)

    아래와 같이 코드를 작성하면 a1 객체와 a2 객체가 서로 같은 int형에 대한 포인터 변수를 공유하기 때문에 이미 해제된걸 재해제 하기 때문이다. #include using namespace std; class A { int* ptr = nullptr; public: A() { ptr = new int(); } A(const A& Ref) { this->ptr = Ref.ptr; } ~A() { delete ptr; } }; int main() { // 기본 생성자 호출 A a1; // 복사 생성자 호출 A a2(a1); } 이를 해결하기 위해선 ptr를 참조 대상값 가지고서 재 할당 해줘야한다. #include using namespace std; class A { int* ptr = nullptr;..

    C# 배열 복사 방법

    한 가지 유의해야할 점은 Clone 함수는 얕은 복사이다. using System; using System.Collections.Generic; using System.Runtime.InteropServices; public class A { public float value { get; set; } public A(float value) { this.value = value; } } public class Test { static readonly int mk_size = 10; static void Print(A[] arr) { foreach (var item in arr) { Console.Write($"{item.value} "); } Console.WriteLine(); } static void ..

    C# 얕은 복사 깊은 복사

    Object.MemberwiseClone 은 shallow copy 를 생성하며, ICloneable interface와 함께 사용하면 deep copy 을 얻을 수 있다. MemberwiseClone 는 새로운 객체를 생성 한 다음, 새로운 객체는 현재 오브젝트의 필드를 copy 하여 단순 복사본을 생성한다. 그리고 필드가 value type 이면 bit-by-bit copy (bit 별 복사)가 수행된다. 필드가 reference type 인 경우 reference 가 복사되지만 reference 된 객체는 복사되지 않는다. 이로 인해 원본 객체와 새로운 개체의 복제본은 동일한 객체를 참조하게 된다. 아래 그림 처럼 shallow clone 은 reference 형태를 가진 객체만 복사가 안된다는 점..