01 벡터
요소가 추가,삭제될때마다 자동으로 메모리를 재 할당하여 크기를 동적으로 변경할 수 있는 시퀀스 컨테이너
vector <자료형> 객체이름 (초기크기):
-빈칸 만들고싶을때 초기크기 0
- vector 헤더파일 필수
- 자동으로 메모리 할당되는 배열
- 인덱스를 이용한 요소접근가능
vector <자료형> 객체이름 : 비어있는 벡터생성
vector<자료형> 객체이름 (크기,값) :명시된 값을 명시된 크기만큼 갖는 벡터 생성
vector<자료형> 객체이름 (벡터): 명시된 벡터를 복사해서 생성
벡터 멤버함수
객체이름.함수()
push_back(값)
- 현재 벡터의 마지막 위치에 새로운 원소삽입
- 벡터 크기 1증가
pop_back()
-벡터의 마지막 원소 제거
- 벡터 비어있을 경우 오류
size()
-
empty()
- 벡터에 원소가 존재하지 않으면 true
clear()
-벡터의 모든 원소제거
-할당된 메모리는 그대로
요소와 칸을 전부 삭제
begin()
- 벡터의 첫번째원소를 가리킴
- 벡터의 주소값을 가짐
- 인덱스를 통한 접근 (변경도 가능한)과는 다름
- 얘는 접근만 가능하므로.
end()
- 벡터의 마지막의 다음을 가리킴
-마지막 원소의 위치보다 삽입되지않은 위치를 가리킴
02 PAIR,TYPEDEF
PAIR
두객체를 하나의 객체로 취급
Typedef
기존자료형을 별칭으로
pair 선언
pair<자료형1, 자료형2> 변수이름:
- 어떤 자료형을 쌍으로 묶을지 명시
- 일반적인 자료형은 모두 pair로 명시
pari값 대입
변수이름 = {first,second}
변수이름 = make_pair(first,second)
접근
이름.first
이름.second
typedef
typedef 기존자료형 별칭:
03 정렬
순차구조에서 사용
중복된 숫자 문제
quick sort
merge sort
heap sort
sort함수
sort(시작범위,끝범위)
- 두개의 임의 접근 반복자로 지정된 범위의 모든 요소를 서로 비교하여 오름차순으로 정렬
- 인덱스가 아닌 주소값으로 범위지정함
-
- 끝범위는 배열의 마지막 주소값 +1 ( <끝범위이기때문)
내림차순 정렬
sort (시작범위,끝범위,comp함수) : 내림차순 정렬을 할 수 있도록하는 사용자 정의함수 선언하고 sort세번재인자로 전달
or
reverse(시작범위,끝범위)
실수형
- 숫자의 크기순 정렬
문자형
-문자의 아스키코드 순으로 정렬
pair
- 첫번째 원소를 기준으로 정렬
- 그다음 두번재 원소 정렬
문자열
- pair와 마찬가지로 첫번째 글자 기준으로 먼저 정렬
- 그 다음 글자가 차례로 정렬기준이 됨
- 문자열의 길이는 정렬의 기준이 되지않음.
순차구조 초기화 함수
fill(시작, 끝, 초기화값)
- 배열, 벡터 등 순차구조를 초기화함수
- memset과 달리모든 자료형에 대해 초기화가능
'✍2021,2022 > 알고리즘' 카테고리의 다른 글
문제풀이(2) (0) | 2022.07.06 |
---|---|
C언어 세미나(4) (0) | 2022.07.06 |
백준 문제풀이 (0) | 2022.07.04 |
C언어세미나 (2) (0) | 2022.07.01 |
알고리즘 공부 계획 (0) | 2022.01.20 |