C++/summary

STL - 큐

gandus 2010. 10. 27. 09:38




First in First Out 구조이다.


queue 를 이용한 예제


#include<iostream>

#include<queue>

using namespace std;

 

/*

// 기본적인큐를이용한예제

 

void main(){

        queue<int> qu;

 

        qu.push(100);

        qu.push(200);

        qu.push(300);

 

        while(!qu.empty()){

               cout<< qu.front() <<endl;

               qu.pop();

        }

}

*/

 

/* 조세퍼스문제 3번째문자만지워지고1,2번은마지막으로돌린다.

        1 2 3 4 5 6 7 8 9 10    -> 3은지워지고

        -> 4 5 6 7 8 9 10 1 2   남는다.

*/

 

// 정수 42개를사용

 

void main(){

 

        queue<int> qu;

        int one, two;

 

        for(int i=1; i <=42; i++ )

               qu.push(i);

 

        while( qu.size() != 2)

        {

               one = qu.front(); // 첫번째원소저장

               qu.pop();  // 그다음삭제

              

               two = qu.front();  // 두번째원소저장

               qu.pop(); // 그다음삭제..

 

               qu.pop();  // 3번째이므로그냥삭제.

 

               qu.push(one);  // 처음두번째를마지막에저장.

               qu.push(two);

        }

 

        cout<< "남은원소의크기는: "<<qu.size() <<endl;

        cout<<"처음원소는: " <<qu.front() << endl;

        qu.pop();

        cout<<"두번째원소는: " <<qu.front() << endl;

 

}