고흐의 연구실/C언어와 C++

[C++] 코딩테스트 연습중 ㅎㄷㄷ..

전고흐 2020. 10. 23. 02:25
728x90

주로 쓰는 언어가 C였다가.. Java랑 C를 쓰다가..

군대가서 컴퓨터와 멀어지고

전역전에 파이썬으로 코딩테스트 준비하다가,,..

다시 C를 열심히 쓰는데... C++ 공부의 필요성을 느끼지만, C로 버텨왔는데...

코딩테스트를 C로하려고하니 C++의 STL을... 봐버렸다 0o0

그래서... 이렇게 갈아..타..는.....중...........

 

기본적으로 코테에 들어가있는게 벡터(Vecter) 형식

 >> 벡터를 좀 자세하게 알아야 겠다.

일단 간단하게 정리를 하자면

 

#include <vector>   // 헤더파일 선언!

 

vector <자료형> 벡터명;

vector <int> v;    // 초기화 안된 변수 선언

vector <int> v1(5);    // 5개의 원소를 가진 벡터(초기화는 0으로 됨 -> 이게 디폴트 값)

vector <int> v2(5, 7);    // 5개의 원소, 7로 초기화

vertor <int> v3(v2);    // v2를 고대로 복사

 

vector <char> v;

vertor <char> v1{'a', 'b', 'c'};    // 원소값이 들어간 벡터

vector <char> v2(5);    // 5개의 원소를 가진 벡터(초기화는 ' '로 됨 -> 이게 디폴트 값)

 

vector <string> v{"aa", "bbb"};

vertor <string> v = {"aaa", "bbb"};    // {}안에 있는 값 복사

 

vertor 활용

v.size() : 원소의 갯수 반환

v.capacity() : 할당된 공간의 크기를 리턴(공간할당의 기준은 점점 커니면서 capacity를 할당)

v.empty() : v가 비어있으면 1(TRUE), 아니면 0(FALSE)

v.front() : v의 첫번째 원소

v.back() : v의 마지막 원소

v.at(i) : v의 i번째 원소(=v[i])

v.clear() : 모든 원소 제거(메모리는 남아있음)

v.push_back(3) : 마지막에 3을 추가

v.pop_back() : 마지막 원소 꺼내기

v.insert(i, 3) : i번째 위치에 3 추가

v.insert(i, 5, 3) : i번째 위치에 5개의 3을 삽입

v.erase(i) : i번째 원소 삭제

v1.swap(v2) : v1과 v2를 swap

v.assign(5, 2) : 2의 값으로 5개의 원소 할당

v.reserve(3) : 3개의 원소를 저장할 위치를 예약(동적할당)

v.resize(5) : 크기를 5로 변경(더 커졌을경우 0으로 초기화)

v.resize(5, 3) : 크기를 5로 변경, 더 커졌을 경우 인자값을 3으로 초기화

 

iterator - 반복자 형식

- 포인터와 비슷한 개념으로 컨테이너의 원소를 가리키고, 가리키는 원소에 접근하여 다음 원소를 가리키는 기능. 순회

v.begin() : 첫번째 원소를 가리킴

v.end() : 마지막의 다음을 가리킴

v.rbegin() : 거꾸로해서 첫번째 원소를 가리킴

v.rend() : 거꾸로해서 마지막의 다음을 가리킴

 

 

 

#include <algorithm>

이거 좀 사기..

 

일단 시간이 없으므로 이 포스팅에는 자주쓰이는 것을 쭈욱 가져와보려한다..

 

 

 

 

 

 

728x90