ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 배열
    알고리즘 스터디 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
준생e