41-3-³ª.Å¥

Å¥´Â ½ºÅÿ¡ ºñÇØ ¸ÕÀú µé¾î°£ °ªÀÌ ¸ÕÀú ³ª¿À´Â(FIFO) ÀÚ·á ±¸Á¶ÀÌ´Ù. ÀڷḦ °ü¸®ÇÏ´Â ±âº»ÀûÀÎ ±â´ÉÀº ½ÃÄö½ºÀÇ °ÍÀ» ±×´ë·Î Àç»ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç FIFO ¿ø¸®´ë·Î µ¿ÀÛÇϱâ À§ÇØ ²À ÇÊ¿äÇÑ ÀÎÅÍÆäÀ̽º´Â ´ÙÀ½ 4°¡Áö ¹Û¿¡ ¾ø´Ù.

 

push, pop : ¾ÕµÚ¿¡¼­ °ªÀ» Ãß°¡Çϰųª Á¦°ÅÇÑ´Ù.

front, back : ¾ÕµÚÀÇ °ªÀ» Àд´Ù.

 

ÀÌ 4 °³ÀÇ ÁÖ¿ä ÇÔ¼ö¿Í size, empty ±×¸®°í »ý¼ºÀÚ°¡ Å¥ÀÇ ÇÔ¼ö ÀüºÎÀÌ´Ù. ÀÌ Á¤µµ ±â´É¸¸ ÀÖÀ¸¸é Å¥¸¦ ¾ó¸¶µçÁö »ç¿ëÇÒ ¼ö ÀÖ´Ù. ½ºÅðú ¸¶Âù°¡Áö·Î popÀº °ªÀ» Á¦°ÅÇϱ⸸ ÇÏ¸ç ¸®ÅÏÇÏÁö ¾ÊÀ¸¹Ç·Î front, backÀ¸·Î °ªÀ» µû·Î Àоî¾ß ÇÑ´Ù. Å¥ÀÇ ÅÛÇø´ ¼±¾ðÀº ´ÙÀ½°ú °°´Ù.

 

template<class T, class Cont=deque<T> >

class queue { ... }

 

Å¥¿¡ ÀúÀåÇÒ Å¸ÀÔ°ú ±âº» ÄÁÅ×À̳ʸ¦ ÅÛÇø´ Àμö·Î ÁöÁ¤Çϴµ¥ µðÆúÆ® ÄÁÅ×À̳ʴ µ¥Å©·Î µÇ¾î ÀÖ´Ù. ¿øÇÑ´Ù¸é ¸®½ºÆ®·Î º¯°æÇÒ ¼öµµ ÀÖÁö¸¸ º¤Åʹ ť ±¸Çö¿¡´Â »ç¿ëÇÒ ¼ö ¾ø´Ù. ¿Ö³ÄÇÏ¸é º¤ÅÍ´Â ¾ÕÂÊ¿¡¼­ »ðÀÔ, »èÁ¦ ±â´ÉÀ» Á¦°øÇÏÁö ¾ÊÀ¸¹Ç·Î Å¥ ±¸Çö¿¡´Â ÀûÇÕÇÏÁö ¾Ê±â ¶§¹®ÀÌ´Ù. °£´ÜÇÑ ÄÁÅ×À̳ÊÁö¸¸ ±×³É ³Ñ¾î°¡¸é ¼·¼·ÇϹǷΠ¿¹Á¦³ª Çϳª ¸¸µé¾î º¸ÀÚ.

 

¿¹ Á¦ : queue

#include <iostream>

#include <queue>

using namespace std;

 

void main()

{

     queue<int> q;

 

     q.push(1);

     q.push(2);

     q.push(3);

 

     while (!q.empty()) {

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

          q.pop();

     }

}

 

Á¤¼ö¸¦ ÀúÀåÇϴ ť q¸¦ ¼±¾ðÇÏ°í 1, 2, 3À» ¼ø¼­´ë·Î »ðÀÔÇß´Ù. ±×¸®°í Å¥°¡ ºô ¶§±îÁö °ªÀ» »©³» Ãâ·ÂÇߴµ¥ Å¥´Â ¸ÕÀú ³ÖÀº °ªÀÌ ¸ÕÀú ³ª¿À´Â ±¸Á¶¸¦ °¡Áö°í ÀÖÀ¸¹Ç·Î »ðÀÔÇÑ ¼ø¼­ ±×´ë·Î 1, 2, 3ÀÌ Ãâ·ÂµÈ´Ù.

14Àå¿¡¼­ Å¥¸¦ ÀÌ¿ëÇÑ snake °ÔÀÓÀ» ¸¸µé¾î º» ÀûÀÌ Àִµ¥ ÀÌ °ÔÀÓÀÇ ÁÖ¿ä ÀÚ·á ±¸Á¶ÀΠť¸¦ STLÀÇ queue·Î ÀÛ¼ºÇÒ ¼öµµ ÀÖ´Ù. ÁÖ¿ä ÀÚ·á ±¸Á¶¸¦ ¶óÀ̺귯¸®¿¡¼­ °¡Á®´Ù ¾²¸é ½Å·Ú¼º°ú È¿À²¼ºÀ» °øÂ¥·Î ¾òÀ» ¼ö ÀÖÀ¸¹Ç·Î ÇÁ·Î±×·¡¸Ó´Â °ÔÀÓ °íÀ¯ÀÇ ³í¸® ±¸Çö¿¡¸¸ Ä¡ÁßÇÏ¸é µÈ´Ù.