본문 바로가기

vector2

list vs vector vector와 list의 timecomplexity다. 이것만 보면 서로 장단 점이 있어 random access 를 할 때는 vector로 구현하고 i/d 를 쓸 때는 list를 쓰면 될 것 같다 하지만 99%가 vector를 쓴다 find 때문이다 TimeComplexity는 같지만 실행해보면 vector의 find가 훨씬 빠르다. 그 이유는 두가지 이유가 있는데 첫번째로 메모리 구조 때문이다. vector는 연속되게 저장된다 하지만 list는 3개씩 떨어진 상태로 저장된다. find를 하게 되면 vector에서는 1부터 4까지 하나씩 움직이며 찾게 되고 움직인 뒤 그 메모리는 캐시 된다 그런데 list는 떨어진 상태로 존재하기 때문에 1을 찾고 캐시를 하고 캐쉬가 캐시 미스가나고 2를 찾고 캐쉬를 .. 2022. 6. 6.
vector란 무엇 일까? c++ Vector란 무엇 일까? cppreference.com 에 검색을 해보자 std::vector is a sequence container that encapsulates dynamic size arrays. vector는 동적 사이즈 배열을 캡슐화하는 연속된 컨테이너입니다.라고 설명하고 있다 동적 사이즈 배열이란? 정적 배열처럼 크기가 정해진 배열이 아니라 요소를 추가하거나 제거할 수 있는 임의 액세스 가변 크기 목록 데이터 구조이다. 동적인 배열을 사용할 때 vector를 쓰는구나라고 유추할 수 있다. 자 그럼 동적 사이즈 배열을 연속되게 사용하는 것을 vector를 사용하지 않고 코드를 작성해 보자 #include #include using namespace std; int main() { int*.. 2022. 6. 1.