ㄱ.   STL의 방식은 복사되어 ( 컨데이너에 ) 들어가고, 복사 되어 나온다.
이런 복사는 해당 클래스의 복사용 멤버 함수를 사용 ( 복사 생성자, 복사 대입 연산자 ).

ㄴ.   STL의 기본 복사 방식으로 생기는 문제점.

    STL의 기본이 복사 방식으로 이루어 지기 때문에 데이터가 크면 클수록 메모리 사용량과 CPU 사용률은 더욱 높아 지는 문제점.

    상속된 객체의 경우 복사 동작이 제대로 이루어 지지 않는 형상 슬라이스.
기본 클래스의 컨테이너를 만들고 파생 클래스를 객체를 넣으면, 복사 과정에서 기본 생성자가 쓰이면서 파생 클래스 부분에 선언된 데이터는 잘려나감.

ㄷ.   해결 방안.
객체의 컨테이너를 만들지 않고, 포인터의 컨테이너를 만듬.

    속도가 빠름 포인터만 복사 하면 되기 때문

    정확 포인터를 이루는 비트를 복사 하기 때문.

    슬라이스 문제 해결 포인터를 복사 될 때 잘려나가는 데이터가 생기지 않음.


이렇게 포인터의 컨테이너를 만들면 인해 메모리 관리에 대한 문제점이 생기지만 스마트 포인터를 사용하면 해결 가능.

Posted by 냉동