티스토리 뷰
PS/PS_Note
[C/C++] 자주 사용하는 C++ STL 자료구조 (vector, pair, queue, priority_queue)
Aaron 2020. 5. 2. 21:22반응형
1 | #include <vector> | cs |
.빈 벡터 생성
-- a 라는 이름을 가진 int 자료형의 빈 벡터
1 2 3 4 | vector<int> a; a.push_back(3); printf("%d\n", a.size()); // 벡터 a 의 원소 개수 a.pop_back(); | cs |
--
.크기를 가진 벡터 생성
-- b 라는 이름을 가진 int 자료형의 크기가 5인 벡터 - 소괄호
1 2 3 4 5 6 | vector<int> b(5); // 초기 원소 값은 0으로 초기화 b[1] = 3; printf("%d\n", b[1]); // 초기값을 다른 값으로 초기화 할 경우(12345) vector<int> b(5, 12345); | cs |
--
.벡터 배열
-- c 라는 이름을 가진 배열 3개 생성 (벡터 배열) - 대괄호
-- ex) 인접리스트
1 2 3 4 | vector<int> c[3]; c[0].push_back(3); c[1].push_back(5); c[2].push_back(7); | cs |
--
.한 쌍 자료형
-- p 라는 이름을 가진 int 자료형의 한 쌍 공간 생성
-- 두 개의 데이터형을 한 쌍으로 묶어서 관리
1 2 3 | pair<int, int> p; p = { 3, 5 }; printf("%d %d\n", p.first, p.second); // first, second 로 접근 | cs |
--
.한 쌍 자료형을 담은 벡터 배열
-- graph 라는 이름을 가진 pait<int, int> 자료형의 vector 3개 생성
1 2 3 4 5 | vector<pair<int, int>> graph[3]; graph[0].push_back({ 3, 5 }); graph[1].push_back({ 4, 7 }); graph[2].push_back(make_pair(7, 7)); printf("%d %d\n", graph[2][0].first, graph[2][0].second); | cs |
--
.큐(Queue)
-
1 2 3 4 5 6 7 8 9 10 11 | // Queue 생성 queue<int> q; q.push(1); // queue 원소를 추가(back) q.pop(); // queue 원소 삭제(front) q.front(); // queue 제일 앞 원소 반환 q.back(); // queue 제일 뒤 원소 반환 q.empty(); // queue 가 비어있는지 확인 q.size(); // queue size 반환(원소개수) | cs |
-
.우선순위 큐(Priority Queue)
-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | priority_queue<int> pQ; /* // Max Heap priority_queue< int, vector<int>, less<int> > pQ; priority_queue<int> pQ; // Min Heap priority_queue< int, vector<int>, greater<int> > pQ; */ // push(element) pQ.push(5); // pop() pQ.pop(); // top() pQ.top(); // empty() pQ.empty(); // size() pQ.size(); | cs |
-
반응형
'PS > PS_Note' 카테고리의 다른 글
[Java] PS Coding Tip(~ing) (0) | 2020.07.21 |
---|---|
[Python] PS Coding Tip (~ing) (0) | 2020.05.13 |
[C/C++] STL map 활용 (0) | 2020.05.13 |
[C/C++] C++ Algorithm Note (~ing) (0) | 2020.04.23 |
[C/C++] C++ PS Coding Tip (~ing) (0) | 2020.02.24 |
댓글