배열
-같은 종류의 데이터들이 순차적으로 메모리에 저장되는 자료구조
2차원 배열
-배열 요소들이 2차원으로 나열된 배열
void fill(시작 위치, 자료구조의 끝 위치,first~last전 까지 채우고자 하는 값): 연속성을 띈 자료구조(배열, 벡터)의 지작점부터 연속된 범위를 값이나 객체로 모두 지정하고 싶을때 사용하는 함수
컨테이너
-자료를 저장하는 창고와 같은 역할을 하는 구조(배열, 연결 리스트, 집합, 사전, 트리등)
컨테이너의 분류
vector클래스 (=가변길이 배열)
-배열의 단점을 보완한 컨테이너
-실행 시간에 크기를 변경할 수 있는 동적 배열
-추가 되는 요소의 개수에 따라서 자동적으로 크기가 조절됨
벡터 선언
벡터의 동작원리
-여유분을 두고 메모리를 할당
-여유분이 꽉 찼으면 기존의 영역을 버리고 새로운 영역을 만들거나 기존의 size에서 1.5배 사이즈로 늘린다.
+v.reverse, v.resize()를 사용하여 capacitry를 설정(복사 비용을 줄일 수 있음)
멤버 함수
push_back(데이터) | 벡터 끝 부분에 데이터 추가 |
pop_back() | 벡터 끝 부분에서 데이터를 삭제 |
front() | 벡터 맨 앞에 값 반환 |
back() | 벡터 맨 뒤에 값 반환 |
insert(반복자, 데이터) | 반복자 위치 앞에 데이터 삽입 |
erase(주소) erase(주소1, 주소2) |
주소 위치 데이터만 삭제 주소1에서 주소 2앞까지 데이터 삭제 |
empty() | 벡터 안에 데이터 존재 안하면 true리턴 |
size() | 벡터 안 데이터의 개수를 리턴 |
at(index) 벡터객체이름[index] |
벡터의 원소를 참조 |
clear() | 벡터의 원소를 모두제거 |
반복자
-컨테이너의 요소를 가리키는데 사용된다. (연산자: ++, --, ==, !=, *)
-벡터와 달리 다른 컨테이너는 v[i]와 같이 인덱스 접근이 안될 수도 있음
-모든 컨테이너에 공통적으로 접근할 수 있는 방법: v.begin(), v.end()
2차원 벡터
-배열 요소들이 2차원으로 나열된 배열
'자료구조' 카테고리의 다른 글
C++[7일차](시간 복잡도) (0) | 2024.05.07 |
---|---|
C++[6일차](클래스, 연산자 중복) (0) | 2024.04.14 |
C++수업[4일차](제어구조, 반복문) (0) | 2024.03.18 |
C++수업[3일차](문자열) (0) | 2024.03.11 |
C++수업[2일차](입출력) (0) | 2024.03.05 |