algoshipda   1년 전

아니면 대충 이정도 배열, vector크기면 몇메가 잡아먹는다 를 알고 싶습니다.

appa   1년 전

int 변수 하나가 32비트니까 4바이트입니다. 예를 들어 int형 배열 5000*5000개 = 25000000개를 선언하면 25000000*4 = 100000000바이트를 사용한 것이 되죠.

100000000/1024를 하면 97656.25KB가 나오며 대략 95메가라고 할 수 있겠습니다.

long long이나 double은 64비트이므로 8바이트라서 int형의 2배라고 생각하면 됩니다. char은 2바이트이므로 1/2배라고 생각하시면 되구요.

algoshipda   1년 전

1억바이트에 대략 100메가 정도 되는군요 매번 감사합니다

아 그리고 vector<int>가 일반 int배열보다 더 먹는다고 들었는데 차이가 느껴질 정도로 많이 나나요?

appa   1년 전

저는 차이를 잘 느끼지 못하는 것 같습니다.

yukariko   1년 전

char형은 1바이트입니다. 물론아시겠지만 실수하신것같네요.

사실 자료형하나하나의 크기보단 공간복잡도가 메모리계산에서 더 크게작용하기때문에 vector의 크기같은것을 자세하게 따지지않아도 될것같아요. 물론 int배열대신 char형배열로 메모리초과를 견딘문제도 있긴합니다만..

appa   1년 전

아 1바이트군요ㅜㅜ

댓글을 작성하려면 로그인해야 합니다.