- 배열 넘 쉽지만...기초 정리 -> 개념만 이해 ^^
- 코테에서는 vector 쓰는 게 속편하다
1. 예시 코드
2. 배열의 차원
- 1차원 말고 2차원, 3차원...같은 다차원 배열도 메모리에 연속 할당됨. (1차원 공간에!)
- 배열로 선언한 변수는 메모리의 연속된 공간에 할당됨
- GPT 답변... 무슨 말?..
- char* 타입의 주소는 cout로 출력할 때 문자열(char 배열)로 간주 -> 해당 주소부터 \0이 나올 때까지의 문자들을 출력하려고 시도 -> 의도치 않은 결과 출력..
- C++에서 void*는 **모든 포인터 타입을 저장할 수 있는 "포인터의 공통 타입"**입니다.
- void*는 어떤 타입의 데이터를 가리키는지 정보를 포함하지 않음
- 즉, void*로 변환하면 데이터의 타입과 무관하게 그저 메모리 주소로 처리
- 어쨌든 난 이걸로 각 원소들의 메모리 주소가 연속적인 걸 보여주려고 했음
- 16진수라 한번에 보기 어려우니 설명은 아래와 같다
3. 16진수 막간 설명
- 16진수는 0부터 F까지 구성되어 있다 : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
- int는 4바이트 할당되는디
- 끝에 2개씩만 16진수->10진수로 바꿔보겠다 : 98, 9C, A0
- 각각 152, 156, 160! 4바이트씩 연속되어 있다는 걸 알 수 있당
4. 2차원 배열
5. 배열 효율성
- 배열은 인덱스가 있으니까 인덱스로 한번에 접근 쌉 가능
- 데이터에 접근하는 시간 복잡도 O(1)
- 배열에 데이터 추가할 때는???? -> 어디에 추가하냐에 따라 달라짐
- 맨 뒤 추가 시 : O(1)
- 맨 앞 추가 시 : O(N)
- 중간 삽입 시 : O(N)
- 얘는 그림 생략! ^^ 최악의 경우 맨 앞 추가할 수 있으니까 O(N)임
'자료구조' 카테고리의 다른 글
집합 (1) | 2025.02.03 |
---|---|
STL- 큐 (0) | 2025.01.28 |
SLT-스택 (0) | 2025.01.27 |
STL 컨테이너 4 - 정렬되지 않은 셋 & 맵 (0) | 2025.01.24 |
STL 컨테이너 3 - 맵 (0) | 2025.01.24 |