본문 바로가기

STL

[C++11] 배열을 편리하게 사용할 수 있는 std::array 배열은 한 번 크기가 정해지면 동적으로 변경되지 않습니다.동적으로 크기를 변경하려면 벡터 등의 STL 컨테이너를 활용하면 됩니다.배열을 STL 컨테이너 형태로 사용하는 것이 바로 std::array입니다.동적인 할당과 해제가 없어서 성능상 이점이 있는 배열을 편리한 사용을 할 수 있도록 해줍니다.std::array는 헤더를 포함한 이후에 사용이 가능합니다.기본적인 std::array의 사용 방법은 다음과 같습니다. #include #include int main() { // initialization std::array data = {0, 1, 2, 3, 4}; // get size std::cout 더보기
스마트하지 못한 스마트한 포인터 auto_ptr C/C++은 메모리 관리가 까다로운 언어입니다.개발자가 직접 메모리를 할당하고 해제해야 할 책임이 있습니다.C++의 STL에는 auto_ptr이라는 스마트 포인터가 존재합니다.다만 auto_ptr은 C++11 이후에는 사라졌기 때문에 사용이 불가능합니다.auto_ptr은 헤더에 구현되어 있습니다.auto_ptr이 스마트하지 못한 이유를 확인해 보겠습니다.auto_ptr은 템플릿 기반이기 때문에 어떤 타입의 포인터든지 받을 수 있습니다.클래스의 큰 특징은 객체가 지정된 범위(Scope)를 벗어나면 소멸자가 호출된다는 점입니다.이러한 특징을 통해서 클래스는 객체가 사라지기 전에 정리하거나 해제해야 할 것을 소멸자에서 호출합니다.메모리를 할당하고 해제하지 않으면 메모리 누수(Memory Leak)가 발생합니다.. 더보기