queue

왕준영·2022년 11월 28일
0

C++ STL

목록 보기
4/6

queue library 의 queue class

Syntax

template <class Type, class Container = deque <Type>>
class queue

Constructor

queue();

explicit queue(const container_type& right);
  • Example
int main(){
    queue<int> q;
}

Typedefs

NameDescription
container_typequeue의 container type
value_typecontainer에 저장되는 element type
size_typeelement의 size를 표현하기 위한 unsigned int
referenceelement의 reference type
const_referenceelement의 const reference type
template <class _Tp, class _Container /*= deque<_Tp>*/>
class _LIBCPP_TEMPLATE_VIS queue
{
public:
    typedef _Container                               container_type;
    typedef typename container_type::value_type      value_type;
    typedef typename container_type::reference       reference;
    typedef typename container_type::const_reference const_reference;
    typedef typename container_type::size_type       size_type;
    
/**
*
*the rest is omitted
*/

}

Functions

empty

  • queue가 비어있으면 true를 return
bool empty() const;
  • Example
int main(){
    queue<int> q;

    if(q.empty()) cout<<"true";
}

push

  • queue 의 맨 뒤에 val을 push
void push(const Type& val);
void push(const Type&& val);

pop

  • queue 의 맨 앞 element 를 pop
void pop();
  • Example
int main(){
    queue<int> q;
    int x=3;

    q.push(3); // void push(const Type&& val);
    q.push(x); // void push(const Type& val);

    q.pop();
    q.pop();

    if(q.empty()) cout<<"true";
}

front

  • queue 의 맨 앞 element의 reference 를 return
reference front();

const_reference front() const;

back

  • queue 의 맨 뒤 element의 reference 를 return
reference back();

const_reference back() const;
  • Example
int main(){
    queue<int> q;
    int x=3;

    q.push(3);
    q.push(x);

    int& fr = q.front();
    int& br = q.back();

    int fv = q.front();
    int bv = q.back();

    q.front()++;
    fr++;

    if( fr==5 && fv==3 ) cout<<"true";
    
}

size

  • queue의 element 개수를 return
size_type size() const;
  • Example
int main(){
    queue<int> q;
    int x=3;

    q.push(3);
    q.push(x);
    int size = q.size();
    for(int i=0; i<size; i++){
        cout<<i<<" ";
    }
}

출처 : https://learn.microsoft.com/ko-kr/cpp/standard-library/queue-class?view=msvc-170

profile
원리,구현,근본

0개의 댓글