본문 바로가기

Deque2

(C++)List 리스트는 vector, deque와 같은 시퀀스 컨테이너지만 각 원소가 서로 상대적인 순서를 유지하는게 아닌 노드단위로 연결되있단 점이 가장 큰 차이이다. 시퀀스 데이터들을 다룰때 주의해서 쓴다면 큰 효과를 발휘할 수 있는 컨테이너라고 생각된다. vector, deque와 차이점 원소접근 list는 []이나 at()같은 임의 접근자를 사용하지 못한다. 배열이 아닌 노드로 연결되어 있기 때문에 반복자 탐색을 통해 원소에 접근해야 한다. 그래서 총 N개의 원소를 가질때 O(N)만큼의 시간이 걸린다. 삽입,삭제 삽입하거나 지울때는 연결만 해주거나 끊어주면 되기 때문에 vector, deque와 다르게 상수시간대 밖에 걸리지 않는다. vector, deque에서 삽입하거나 지울때면 다른 원소들을 움직여야 하는데.. 2020. 9. 16.
(C++)Vector / Deque 시퀀스 컨테이너인 Vector와 Deque에 대해 차이점 위주로 알아보도록 하자. 공통점 둘은 정말 비슷한 컨테이너라 할 수 있다. 원소 추가, 삭제, 조회 , 연산 모두 같은 방식으로 호출하고 사용된다. - erase 원소를 삭제할때 erase를 호출하며 배개변수로 반복자포인터 하나가 들어갈 수도 있고 두개가 들어가서 한번에 여러 범위의 원소를 지울 수 있다. 주의 해야 할 점은 반복자 순회에서 해당 위치의 원소 삭제 후 해당 포인터가 삭제되므로 순회할때 예외적으로 처리 해줘야 한다. 아래는 해당 코드이다. int main() { vector vec; vec.push_back(1); vec.push_back(4); vec.push_back(1); vec.push_back(1); vec.push_back.. 2020. 9. 14.