-
배열알고리즘 스터디 01/강의 정리 2022. 11. 21. 14:17
배열
메모리 상에 원소를 연속하게 배치한 자료구조
배열의 성질
- O(1)의 시간 복잡도로 k번째 위치를 확인/변경가능
- 추가적으로 소모되는 메모리의 양이 거의 없음
- cache Hit Rate가 높음
- 연속적인 구간을 잡아야 해서 할당에 제약이 걸림꿀팁
전체를 같은 값으로 초기화
1. memset - 0이나 -1이 아닌 다른 값을 넣으면 오동작 2차원배열에서 오동작 등등
ex ) memset(a, 0, sizeof a);
비추 !
2. for - 실수 없이 무난
3. fill - 실수 여지 별로 없고 코드도 짧음 algorithm 헤더
ex ) fill(a, a+21, 0);
vector
배열과 마찬가지로 메모리상의 연속적인 공간에 존재
크기가 변함
vector 순회
1, range based for loop
ex ) for (int e:v1){}
int e : v1 : 복사된 값이 들어감
int& e : v1 : 원본 값이 들어감 (값을 변경하면 원본에도 변경이 일어남)
==> 이 기능은 list, set, map에서도 모두 사용할 수 있음 (C++ 11부터 제공)
2, normal for
ex ) for (int i=0; i<v1.size(); i++)++ 전역 변수로 배열을 선언하면 자동으로 0으로 채워줌
'알고리즘 스터디 01 > 강의 정리' 카테고리의 다른 글
덱 (1) 2022.11.21 큐 (0) 2022.11.21 스택 (0) 2022.11.21 연결리스트 (0) 2022.11.21 기초 코드 작성요령 1&2 (0) 2022.11.21