STL
[C++] STL container 시간 복잡도 및 특징 비교
※용어 설명※ amortized : 분할 상환하다는 뜻을 가지고 있는 이 단어는, 쉽게 설명하자면 최악의 경우는 더 높은 값의 시간 복잡도를 가질 수 있지만, 대체적으로는~ 으로 생각하면 될 것 같다. 점근적 분석(Asymptotic analysis)으로 보면 O(n)이 나오는 경우에, 분할상환분석(Amortized Analysis)으로 보면 O(1)이 나오는 경우도 있기 때문이다. red-black tree: 레드블랙트리. Balanced Binary-Search Tree로 이루어진 구조. [출처] C++ STL container 시간 복잡도 및 특징 비교.|작성자 Chan
[C++] STL 연관 컨테이너(associative container), set, multiset
set 세트set 컨테이너는 요소가 그 값에 따라 정렬되는 형태이다 즉, key라 불리는 원소(value)의 집합이다. 또한 이 원소들에 중복을 허용하지 않는다는 것이 특징이다.#include#includeusing namespace std;int main(){ set is; is.insert(55); is.insert(7); is.insert(23); is.insert(61); is.insert(7); is.insert(9); is.insert(58); set::iterator it; for(it = is.begin(); it != is.end(); it++) { cout 그냥 제멋대로 insert를 해도 알아서 정렬이 된다.실제 트리구조는 항상 균형 이진 트리로 구성된다.이 ..
C++ _if STL 알고리즘 함수 (파라미터 _Pr _Pred) > 조건자 (Predicate)
참고할만한 부분은 _if로 끝나는 함수들만 매개변수(조건자)로 넘길 수 있다는 점, sort 함수 예외. 참고 사이트 : https://en.cppreference.com/w/cpp/algorithm #include #include #include #include #include using namespace std; bool Is_one(int _val) { return _val == 1; } class Test { public: bool operator()(int i) { return i % 4 == 0; } }; struct s_test { public: bool operator()(int i) { return i % 2 == 0; } }; int main() { // 파라미터 _Pr _Pred > ..
C++ STL 설명과 for-range 기반 loop
STL(Standard Template Library)은 C++ 내 템플릿 클래스들의 집합이며, 개발자에게 도움줄 수많은 자료구조와 함수들이 구현 되어있다. 기본 4가지로 구성 되어있다. 알고리즘 헤더 파일 내 (정렬, 탐색 컨테이너 (선형,비선형 자료구조) 예) , 함수 이터레이터 (반복자) 모든 컨테이너들은 이를 지원하지 않음. STL은 기본적으로 범위 기반 for문을 돌려 원소에 접근할 수가 있다. 핵심은 4번에 있다, 이를 실행할 수 있는 조건이 바로 .begin() 함수다 즉 첫 원소의 주소를 이터레이터 형태로 반환하는 함수다. 예) for(auto item : 컨테이너 이름) 여기서 한 가지 의문점이 들 수도 있는데 const auto : const auto& : auto : auto& : 위..