프로그래밍/STL 스피비 2011. 3. 28. 16:57
자료구조의 기초:최적의 자료구조는 없으며, 때에 따라서 맞는 자료구조를 선택해야한다. 일반화 프로그래밍이란? => OOP이후로 좀더 발전된 재사용성을 제공하는 프로그래밍으로써, 데이터와 행동을 나누는것을 기반으로 하며, 객체지향의 다음 세대라고 불러지기도한다. 특징: 1. 임의타입에 사용할 수 잇는 자료구조를 만들수 있다. (템플릿사용) 2. 내부구조에 상관없이 임의의 데이터 집합에 접용할 수 있는 일반화된 알고리즘을 제공한다. (반복자라는 일반화된 포인터를 사용) STL이란? (Standard Template Library)의 약자로, 일단은 라이브러리이되 템플릿의 집합을 제공하는 라이브러리이며, 현재 C++의 표준으로 채택되어있다. STL의 장점 1. 일반화를 지원함.( 하나의 알고리즘으로 복수 개의..
프로그래밍/STL 스피비 2011. 3. 25. 12:00
템플릿 총정리 1. 제네릭 프로그래밍(Generic Programming - 절차,객체지향프로그래밍과는 다른 개념의 프로그래밍 패러다임중 하나로 일반화 프로그래밍이란것이 있다. - 소프트웨어 라이브러리의 효율성과 재사용성을 높이려는 프로그래밍 패러다임의 하나 - 데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있는 기술에 중점을 두는 프로그래밍 방식 - 함수나 클래스 등의 프로그램 내 중요한 각 요소를 일반화 2. 템플릿(Template)이란? - 무엇인가를 만들 때 안내역할을 하는데 사용되는 형식(꼴), 틀 또는 모형 등을 의미 - 특정 단위코드의 기본으로 사용될 수 있는 일반적인 클래스나 단위 원시코드 - C++ 표준 라이브러리 - 우리가 사용하는 템플릿의 의미는 타입의..
프로그래밍/STL 스피비 2011. 3. 13. 12:04
(마크된 클래스를) 벡터를 이용하여 생성자, 소멸자 및 재할당 확인하기. 1일반 객체를 사용할 경우 생성자를 정상적으로 호출하지만 소멸자에서는 정상적으로 호출 되지 않고 에러를 발생한다. 그 이유는 벡터에 push 될 때 복사생성자가 발생한다. 이 복사생성자를 오버로딩하여 깊은 복사를 하지 않게 되면 J1DArray 객체의 포인터 변수인 m_buffer을 같이 가리키게 된다. 이 이후에 객체가 소멸될 때 처음 한 번은 객체의 메모리를 정상적으로 반납하지만 그 이후에는 메모리를 잃은 주소를 참조하여 제거를 시도하기 때문에 에러가 발생한다. 게다가 벡터는 push 할 경우 재할당이 이루어지기 때문에 애초에 주소값을 잃어버리게 된다. 마지막으로 추가된 객체의 소멸자는 정상적인 주소값을 갖고 있기 때문에 문제가..
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.