728x90

list 2

STL 컨테이너

C++STL 컨테이너벡터(Vector)동적 배열(크기 조절 가능), 배열과 같이 연속된 자료구조이므로 캐시 친화적이다. 임의 접근 반복자(random access iterator)를 사용하므로 배열의 원소에 즉시 접근 가능하다.emplace를 하면 복제 과정 없이 바로 원소를 삽입할 수 있어서 push_back보다 비용이 절감된다. 반복자 무효화가 발생할 수 있다.반복자 무효화컨테이너의 메모리가 재할당 될 때(vector resize, push_back)나 요소 삭제를 하는 등의 동작에서 발생할 수 있다.만약 STL의 erase를 사용한다면 erase한 원소 포함해서 뒤의 원소를 가리키는 모든 반복자가 무효화된다. 이는 삭제 후 뒤에 있는 요소를 모두 땡겨줘야 하기 때문이다.단, erase 함수는 다음 ..

언어/C++ 2024.06.16

리스트_List

리스트(List) 리스트(list) 혹은 선형 리스트(linear list)란, 순서를 가진 항목들의 모임을 뜻한다. 리스트란 자료를 나열하여 저장하는 ‘목록’ 형태 리스트의 항목들이 순서/위치 를 가진다 스택, 큐 자료구조도 리스트의 일종이다. 순서 개념이 없는 집합(set)과 차이가 있다. 배열(Array) 또는 연결리스트(Linked_list)를 통해 구현 가능하다. 배열(array) - 타입이 같은 데이터를 하나로, 연속적인 메모리 공간, 인덱스(index) 번호를 사용해 쉽게 접근가능 같은 형태의 변수 여러 개 만들 때 사용 반복 코드 등에서 효율적이다. 구조체(struct) - 타입이 다른 데이터를 하나로

728x90