본문 바로가기
반응형

C++17

[c++] STL vector STL의 시퀀스 컨테이너중 하나인 vecotr에 대해 알아보자 Vector vector는 동적배열로 구현되어 있다. 각각의 원소들이 메모리 상에서 연속적으로 존재한다. 원소를 참조할 때 iterator를 이용하여 순차적으로 참조할 수 있다. index값으로 바로 참조도 가능하다. Heap 메모리를 쓰지만 개발자가 직접 delete해주지 않아도 사용되지 않으면 알아서 메모리를 해제한다. 장점 원소들을 임의의 순서로 접근할 수 있다. (선형시간 소요) index값으로 바로 참조 할 수 있다.(상수시간 소요) vector의 끝(push_back)이나 중간(insert)에 새로운 원소를 추가/제거 할 수 있다.(상수시간 소요) 원소에 접근하는것 과 vector의 끝에서 새로운 원소를 삽입/삭제하는것은 deque.. 2021. 8. 19.
[c++] STL Algorithm #include 에서 지원하는 몇가지 함수들을 알아보자. for_each(first, last, fn) 범위 내(first,last) 원소들을 순차적으로 함수 fn을 실행한다. 원소를 수정하지 않는다. #include #include #include void functionA(int n) { cout 2021. 8. 18.
[c++] STL Iterator의 종류 1. 입력 반복자(Input) Read 및 접근 가능 Write 불가능 산술연산 ++ 만 가능 비교연산 ==, != 만 가능 2. 출력 반복자(Output) Read 및 접근 불가능 Write 가능 산술연산 ++ 만 가능 비교연산 불가능 3. 순방향 반복자(Forward) Read, Write 모두 가능 산술연산 ++, -- 가능 비교연산 ==, != 만 가능 list, set, map은 이 반복자를 지원한다. 양방향 반복자를 지원하지 않는 컨테이너는 reverse()함수를 사용할 수 없다. 4. 임의접근 반복자(Random Access) Read, Write 모두 가능 산술연산 ++, --, +, -, +=, -= 가능 비교연산 ==, !=, , = 가능 첨자 연산자 사용 가능 [ ] Vector::i.. 2021. 8. 18.
[c++] STL Container의 종류 1. 시퀀스 컨테이너(Sequence Container) 일반적인 자료구조와 유사한 형태이다. 자료를 입력한 순서대로 저장한다. 검색 및 삽입/삭제의 속도가 느리다. 많지 않은 양의 자료 또는 검색속도가 중요하지 않은 경우 사용한다. vector, list, deque 등 2. 연관 컨네이너(Associative Container) 노드기반 이진 트리 구조로 이루어져있다. 일정 규칙에 따라 자료를 정렬하여 저장한다. 검색 및 삽입/삭제 속도가 빠르다. 많은양의 자료 또는 빠른 검색이 중요한 경우 사용한다. set, map, multiset, multimap 등 3. 어댑터 컨테이너(Container Adaptor) 시퀀스 컨테이너를 변형하여 사용한다. stack, queue 등 2021. 8. 18.
반응형