언어 및 엔진/C++(39)
-
[C++] Vector 재할당
Vector 재할당 속도를 줄이는 방법 Resize()로 사이즈를 조정해준다. Resize()는 메모리 공간 할당 후 그 크기만큼 push_back 을 해서 공간을 활용한다.
2024.04.18 -
[C++] Vector Push_back과 메모리
Vector push_back 할 때 메모리가 왜 2배씩 늘어나는가? push_back -> 임시 객체 생성 -> 복사생성자로 push_back함수 내에 임시객체 생성 -> 임시객체를 벡터 끝에 추가 -> 처음 임시객체 소멸
2024.04.18 -
[C++] Array / Vector
Array / Vector 배열은 크기가 고정, 벡터는 크기가 유동
2024.04.18 -
[C++] Map / HashMap
Map / HashMap 맵과 해시맵이 각각 컨테이너 내부의 값을 찾을 때 시간복잡도 해시맵이 빠른 이유 맵 균형 이진 트리(레드블랙트리), 삽입과 동시에 자동으로 정렬 해시 맵(Unordered Map) 해시 테이블. 정렬 할 필요가 없음. 키 값을 대입하여 나온 번호에 벨류를 저장. 일반적으로 데이터 양이 많을 때 맵 보다 해시맵이 빠르다. 맵의 시간복잡도는 O(log N), 해시 맵의 시간복잡도는 O(1) 키의 데이터 타입이 숫자일 때와 문자열일 때 현저한 차이가 있음(문자열일 때 더 복잡)
2024.04.18 -
[C++] Heap
Heap 동적으로 할당된 변수에 할당되는 영역. 후입선출을 한다 용량은 컴퓨터의 남은 메모리 영역 만큼.
2024.04.18 -
[C++] Stack Overflow
Stack Overflow 스택의 기본 용량인 1메가바이트를 넘은 것. 지역변수 선언 시 전역으로 정적배열을 선언하면 힙 영역으로 메모리가 할당되어 오류가 뜨지 않고 사용 가능 주요 원인은 무한루프 -추가- 이건 내가 전공을 할 때 얻은 지식이다. 해킹에서도 자주 써먹는 방식인데, Stack Buffer Ovewflow라고 한다. 주로 고정된 길이를 갖는 배열? 메모리 주소를 악의적으로 터트리게 되는데, 스택 스매싱 으로도 불린다.
2024.04.18