배열도 연속한 메모리. 벡터와의 차이점이라면, 벡터는 런타임에 동적으로 확장될 수 있고, 배열은 컴파일타임에 크기가 고정되어있음.
익명(192.249)2023-02-02 16:52
대부분의 구현체가 그렇게 되있긴 할건데 항상 그렇다고 보장할수는 없는거 아님? 아님 표준에 연속적이라고 정의되어있나
익명(ninja75832)2023-02-02 16:50
답글
넹
익명(118.235)2023-02-02 16:55
답글
The elements are stored contiguously, which means that elements can be accessed not only through iterators, but also using offsets to regular pointers to elements. This means that a pointer to an element of a vector may be passed to any function that expects a pointer to an element of an array. https://en.cppreference.com/w/cpp/container/vector
익명(220.81)2023-02-02 17:24
답글
연속적이 아니었다면 애초에 포인터를 반환하는 메소드들을 만들지도 않았을것
익명(211.114)2023-02-02 17:50
답글
C++17부터 contiguous container를 만들고 vector를 여기다 집어넣음
익명(210.91)2023-03-02 02:25
크기 늘어난다고, realloc하고 free하면 캐시 의미 없어지는거 아님?
익명(192.249)2023-02-02 16:54
답글
그건 맞긴한데 덱같은건 가만있어도 불연속적이니까
익명(118.235)2023-02-02 16:56
씨슬람들 씨들씨들
익명(118.235)2023-02-02 17:13
MetaFibonacci(equivalence)2023-02-02 19:35
물리적 메모리는 연속되지 않았더라도 가상메모리는 연속된것으로 인식함
익명(222.100)2023-02-03 02:41
답글
물리적 메모리가 연속되어있지 않을 가능성이 있음?
익명(218.237)2023-02-03 14:18
답글
당연히, 큰 메모리 먹는 프로그램 (게임이나 유튜브등)이 메모리 읽을땐 물리적 메모리가 연속되지 않은경우가 대부분임
왜냐면 수많은 프로그램이 메모리 사용하고 반환하고 이거 반복하기 때문에 컴퓨터 부팅된지 24시간만 지나도 덩치있는 프로그램은
당연히 연속적인 메모리를 가질수 없음. 32기가 메모리라 해도 말야
근데 프로그램입장에선 연속적인 메모리로 인식하는데 이건 메모리관리하는 mmu에서 가상메모리를 연속적으로 만들고,
비연속적인 물리적 메모리와 맵핑을 하기 때문임
님이 맞음
니가 이상하게 생겼으니 이상하게 보는거다
ㅠㅠㅠㅠㅠㅠ
ㅋㅋㅋㅋㅋㅋ
배열은 그럼 반대로 불연속한 메모리임?
배열도 연속한 메모리. 벡터와의 차이점이라면, 벡터는 런타임에 동적으로 확장될 수 있고, 배열은 컴파일타임에 크기가 고정되어있음.
대부분의 구현체가 그렇게 되있긴 할건데 항상 그렇다고 보장할수는 없는거 아님? 아님 표준에 연속적이라고 정의되어있나
넹
The elements are stored contiguously, which means that elements can be accessed not only through iterators, but also using offsets to regular pointers to elements. This means that a pointer to an element of a vector may be passed to any function that expects a pointer to an element of an array.
https://en.cppreference.com/w/cpp/container/vector
연속적이 아니었다면 애초에 포인터를 반환하는 메소드들을 만들지도 않았을것
C++17부터 contiguous container를 만들고 vector를 여기다 집어넣음
크기 늘어난다고, realloc하고 free하면 캐시 의미 없어지는거 아님?
그건 맞긴한데 덱같은건 가만있어도 불연속적이니까
씨슬람들 씨들씨들
물리적 메모리는 연속되지 않았더라도 가상메모리는 연속된것으로 인식함
물리적 메모리가 연속되어있지 않을 가능성이 있음?
당연히, 큰 메모리 먹는 프로그램 (게임이나 유튜브등)이 메모리 읽을땐 물리적 메모리가 연속되지 않은경우가 대부분임 왜냐면 수많은 프로그램이 메모리 사용하고 반환하고 이거 반복하기 때문에 컴퓨터 부팅된지 24시간만 지나도 덩치있는 프로그램은 당연히 연속적인 메모리를 가질수 없음. 32기가 메모리라 해도 말야 근데 프로그램입장에선 연속적인 메모리로 인식하는데 이건 메모리관리하는 mmu에서 가상메모리를 연속적으로 만들고, 비연속적인 물리적 메모리와 맵핑을 하기 때문임