C언어 세미나 (3)

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(시작범위,끝범위)

- 두개의 임의 접근 반복자로 지정된 범위의 모든 요소를 서로 비교하여 오름차순으로 정렬

- 인덱스가 아닌 주소값으로 범위지정함

-

alcuk

 

- 끝범위는 배열의 마지막 주소값 +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