-

[코딩스킬] C++ STL - 벡터, 큐, 뎈 본문

7. 코딩 스킬

[코딩스킬] C++ STL - 벡터, 큐, 뎈

asdklfjlasdlfkj 2020. 1. 14. 18:10

삼성SW코딩 테스트를 준비하면서 C++ 유저라면 STL 사용은 필수라고 할 수 있다.

다양한 선형 자료구조 가운데 위 세 개 벡터, 큐, 뎈에 대한 사용법만 안다면 훨씬 쉽게 문제를 풀 수 있다.

(알고리즘적인 요소말고)

 

위 세 STL 사용을 위한 예시를 아래와 같이 정리해둔다.

push, push_back, push_front, pop_front, pop_back에 대한 것은 내가 알고있어서 예시 따로 안듬.

(사실 큐가 인덱싱으로 접근이 안된다는 거 하나때문에 시작한 이것저것해본 흔적)

 

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
#include <queue>
#include <vector>
#include <deque>
using namespace std;
 
int main(){
    queue<int> q;
    vector<int> v;
    deque<int> dq;
    cout << "************1. 큐***********\n";
    q.push(1); q.push(3); q.push(5); q.push(7); q.push(9);
    for (int i = 0; i < q.size(); i++){
        //cout << q[i]; 에러.
    }
    cout << q.size();
    cout << "\n큐는 []인덱싱이 안됩니다.\n";
    cout << '\n';
    cout << '\n';
 
    cout << "************2. 벡터***********\n";
    v.push_back(1); v.push_back(3); v.push_back(5); v.push_back(7); v.push_back(9);
    cout << "벡터의 길이: " << v.size() << '\n';
    for (int i = 0; i < v.size(); i++)
        cout << v[i]<< " ";
    cout << '\n';
    cout << '\n';
 
    cout << "************3. 뎈***********\n";
    dq.push_back(1); dq.push_front(3); dq.push_back(5); dq.push_front(7); dq.push_back(9);
    // 73159
    cout << "뎈의 길이: " << dq.size() << '\n';
    for (int i = 0; i < dq.size(); i++)
        cout << dq[i] << " ";
    cout << "\n\n\n";
 
    if (!dq.empty()){
        cout << "뎈은 비어있지 않습니다!\n";
    }
    if (!q.empty()){
        cout << "큐는 비어있지 않습니다!\n";
    }
    if (!v.empty()){
        cout << "벡터는 비어있지 않습니다!\n";
    }
    cout << "\n\n\n";
    
    cout << "큐는 [ ] 인덱싱으로 접근이 안되지만, 벡터와 뎈은 [ ] 인덱싱이 됩니다.!\n";
    cout << "size() empty() 함수도 사용 가능합니다!\n";
    
    cout << "\n\n\n";
    
    cout << "큐는 push()와 pop()\n";
    cout << "벡터는 push_back()과 pop_back()\n";
    cout << "뎈은 push_back(), pop_back(), push_front(), pop_front()로 인자를 앞뒤로 넣거나 뺄 수 있습니다.!\n";
    return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs

 

실행한 콘솔 화면

 

그냥 다른거 다 아는데 큐만 [ ] 인덱싱이 안된다는 게 새로 알게된 점임. 나머지는 알고 있던 사항.


Comments