Data Structure/C++ STL 14

[C++ STL] 1.4 std::forward_list

std::forward_liststd::array, std::vector와 같은 연속된 자료구조는 데이터 중간에 자료를 추가, 삭제하는 작업이 매우 비효율적임따라서 연결 리스트 기반 컨테이너가 등장함연결 리스트를 구성하는 중에 포인터와 관련된 버그 양산을 막기 위해 연결 리스트 wrapper class인 std::forward_list 클래스를 제공함std::forward_list의 기본적인 기능연결 리스트의 성능을 유지하면서 기본적인 기능을 제공함성능 유지를 위해 전체 리스트 크기를 반환하거나, 첫 번째 원소를 제외한 나머지 원소에 직접 접근하는 기능을 제공하지 않음front() 함수는 제공하지만, 거꾸로 움직이는 back() 함수는 제공하지 않음원소의 삽입, 삭제, 순서 뒤집기, 분할을 위한 기능은 ..

[C++ STL] 1.3 std::vector

std::vectorstd::array의 단점std::array의 크기는 컴파일 시간에 결정되는 상수이어야 한다.런타임 중에 변경할 수 없다.크기가 고정되어 있어서 원소를 추가/삭제할 수 없다.항상 스택 메모리를 사용한다. 메모리 할당 방법을 바꿀 수 없다따라서 가변 크기의 데이터를 처리할 수 있는 컨테이너가 필요하다 --> std::vectorstd::vector - 가변 크기 배열배열 기반으로 구현되어 있다초기화 과정에서 데이터의 크기를 제공하지 않아도 된다std:array의 '고정 크기' 문제를 해결한다벡터를 초기화 하는 몇 가지 방법// 크기가 0인 벡터 선언std::vector vec;// 지정한 초깃값으로 이루어진 크기가 5인 벡터 선언std::vector vec = { 1, 2, 3, 4, ..