주로 쓰는 언어가 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>
이거 좀 사기..
일단 시간이 없으므로 이 포스팅에는 자주쓰이는 것을 쭈욱 가져와보려한다..
'고흐의 연구실 > C언어와 C++' 카테고리의 다른 글
[C언어] 조건부 컴파일 #ifdef #endif #if #ifndef (0) | 2020.10.11 |
---|---|
[C언어] 매크로 #define #undef (0) | 2020.10.11 |
[C언어] 파일관련(3) 파일구조체 fwrite(), fread() (0) | 2020.09.30 |
[C언어] 파일관련(2) 파일 크기 구하기 fseek(), ftell(), feof() (0) | 2020.09.30 |
[C언어] 파일관련(1) fopen(), frpintf(), fclose(), fscanf() (0) | 2020.09.17 |