본문 바로가기
프로그래밍 관련/C++

C++ Queue 사용

by 존버매니아.임베디드 개발자 2020. 4. 26.
반응형

C++에서는 Queue를 직접 구현할 필요 없이 간단하게 사용할 수 있게 제공한다.

 

#include<queue> 를 추가해서 사용한다.

 

선언

queue<int> abc;

queue<char> abc1;

queue<vector<int>> abc2;  // 이런식으로 벡터를 원소로 갖는 queue도 생성 가능함.

 

사용

 

1. push() , pop()

push는 queue에 데이터 삽입(제일 뒤에)

pop은 queue의 첫번째 데이터 삭제

※ 이 때. pop은 첫번째 값을 return 하지는 않는다. 요소를 삭제만하는 것에 유의.

ex)

abc.push(5);  // abc라는 q에 데이터 5 add

abc.push(6);

abc.push(17); 

// 현재 q의 형태 : [ 5, 6, 17] 

abc.pop(); // [6,17] 

 

2. front(), back();

abc.front();// abc라는 q의 제일 첫번째 데이터 return

abc.back();// abc라는 q의 제일 뒤에 있는 데이터 return

 

3. size()

abc.size();현재 queue의 사이즈 return (현재 갖고있는 엘리먼트 갯수)

 

4.empty()

현재 queue 사이즈가 0이면 true return

abc.empty();

 

 

5. 몇 가지 예시들

 5-1 # vector를 input으로하는 queue 사용.

queue<vector<int>> abc;

vector<int> test;

 

test.push_back(100);

test.push_back(10); 

// [ 100 , 10 ]

abc.push(test);

 

test[0]=200;

test[1]=20;

 

abc.push(test);

 

// 이때 queue에 현재 들어간 데이터 형태 : [100,10] , [200,20]

 

abc.size() -> 2를 리턴

abc.front() -> [100,10] 의 vector를 return

abc.pop() -> 첫번째 element가 삭제되어 queue에 남은 데이터는 [200, 20]이 될 것.

 

 

5-2) struct를 input으로하는 queue 사용

 

typedef struct{

int index;

string str_input;

}st_Test;  // 구조체 선언

 

queue<st_Test> abc;

라고 라고 큐 선언해서 사용하면 됨.

 

 

 

 

 

반응형

'프로그래밍 관련 > C++' 카테고리의 다른 글

C++ map  (0) 2020.05.02
C++ stack  (0) 2020.05.01
c++ sort  (0) 2020.04.29
C++ string  (0) 2020.04.26
C++ vector  (0) 2020.04.26