본문 바로가기

STL

STL - 변경 불가 시퀀스 알고리즘 변경불가 시퀀스 알고리즘은 대상 컨테이너를 직접 수정 할 수 없는 알고리즘입니다. 이러한 알고리즘에는 시퀀스를 검색하여 원하는 원소를 찾아내는 알고리즘은 find, 상등 여부를 검사하는 equal, 그리고 시퀀스에 담긴 원소의 원소 개수를 세는 count 같은 알고리즘 등이 있습니다. 일단 우리가 알아볼 변경불가 시퀀스 알고리즘에는 find, adjacent_find, find_if, count,count_if, for_each, mismatch, equal, search 이렇게 여러 알고리즘이 있는데, 여기 에서 언급된 변경불가 시퀀스들의 시간복잡도는 선형적입니다. (선형은 무엇인가? 아래 표를 한번 참고해 보시죠) find : 우선은 find 알고리즘에 관해서 알아 보겠습니다. find 알고리즘은 시.. 더보기
[EC++] 항목 7. 다형성을 가진 기본 클래스에서는 소멸자를 반드시 가상 소멸자로 선언하자. Effective C++에 있는 내용이라고 겁먹지 말자. 우리는 이미 이 내용을 제가 C++ 포스팅 하면서 언급을 한 적이 있습니다. 왜 다형성을 가진 기본 클래스에서는 소멸자를 가상 소멸자로 써야 하는가? 우선 다형성과 그 이유에 대해서 먼저 보시죠. 다형성 이란? Virtual 소멸자 위 두 포스팅만 보더라도 왜 가상 소멸자를 쓰는지 이유는 충분히 알 수 있을 것입니다. 가상 함수를 C++에서 구현하려면 클래스에 별도의 자료구조가 하나 들어가야 합니다. 이 자료구조는 프로그램 실행 중에 주어진 객체에 대해 어떤 가상 함수를 호출해야 하는지는 결정하는 데 쓰이는 정보인데, 실제로는 포인터의 형태를 취하는 것이 대부분이고, 이를 가상 함수 테이블 포인터(Virtual table pointer) 즉, vp.. 더보기