Å¥´Â ½ºÅÿ¡ ºñÇØ ¸ÕÀú µé¾î°£ °ªÀÌ ¸ÕÀú ³ª¿À´Â(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·Î ÀÛ¼ºÇÒ ¼öµµ ÀÖ´Ù. ÁÖ¿ä ÀÚ·á ±¸Á¶¸¦ ¶óÀ̺귯¸®¿¡¼ °¡Á®´Ù ¾²¸é ½Å·Ú¼º°ú È¿À²¼ºÀ» °øÂ¥·Î ¾òÀ» ¼ö ÀÖÀ¸¹Ç·Î ÇÁ·Î±×·¡¸Ó´Â °ÔÀÓ °íÀ¯ÀÇ ³í¸® ±¸Çö¿¡¸¸ Ä¡ÁßÇÏ¸é µÈ´Ù.