자료구조 3

3. std::forward_list

std::forward_list 란? 앞에 배열과 벡터의 문제점 중 하나인 데이터 중간에 자료를 추가하거나 삭제하는 과정에서 많은 시간이 발생한다. 이를 해결하고자 forward_list 라는 연결 리스트 컨테이너를 이용하면 시간 복잡도 O(1)에서 해결이 가능하다. 그렇다면 사용법은? 벡터와 쓰임새가 비슷하다. #include #include using namespace std; int main() { forward_list f_list; } 마찬가지로 크기 또한 동적으로 할당이 가능하다. 단점으로는 전체 리스트의 크기 반환 기능, back() 함수의 기능이 제공되지 않으며 과 첫번째 주소에만 직접 접근이 가능하다. 그래서 이 컨테이너를 적절히 이용하기 위해선 삽입과 삭제 또는 리스트 반전, 분할이 필..

자료구조 2022.07.12

2. C++ std::array vs std::vector

std::array vs std::vector 이 둘의 차이점은 무엇일까? 우선 둘은 C++에서 배열을 관리를 해주는 라이브러리이다. 그렇다면 둘 다 배열을 관리를 해주는 것은 같으나 무엇이 달라 나뉜 것일까? std::array 우선 C++에서의 std::array 사용법은 다음과 같다. #include using namespace std; int main() { array arr_1; // 정수형 타입의 크기가 5인 배열선언 array arr_2 = { 1,3,5,7,9 };// 정수형 타입의 크기가 5이고 특정 원소로 초기화된 배열 선언 } box로 선언한 array은 일반적인 배열과 똑같이 접근이 가능하며 추가적으로 begin(), end(), front(), back(), data() 등등 멤버..

자료구조 2022.07.08

1. 연속된 자료 구조(배열) vs 연결된 자료 구조(링크 리스트) (C++)

선형 자료 구조 선형 자료 구조란? 자료를 구성하는 데이터를 순차적으로 나열한 방식이다. 예를 들어 {1 ,a ,2 ,l} 라는 자료들이 있다고 가정하고 이를 연속적으로 1 - a - 2 - l 이렇게 나열하는 표현하는 방식을 선형 하다라고 한다. 대표적인 선형 자료 구조로는 배열,리스트,스택,큐 가 있다. 선형 자료 구조의 종류 크게 연속된 자료 구조와 연결된 자료구조로 나뉜다. 연속된 자료 구조 연속된 자료 구조 연속된 자료구조는 모든 원소를 단일 메모리에 저장을 하며 이를 밑에 다이어그램으로 보여준 것이다. data [0] data [1] data [2] data [2] arr arr + sizeof(type) arr + 2*sizeof(type) arr + 2*sizeof(type) 시작 주소: ..

자료구조 2022.07.05