41-3-´Ù.¿ì¼± ¼øÀ§ Å¥

¿ì¼± ¼øÀ§ Å¥´Â º¤ÅÍ¿Í À¯»çÇ쵂 °ªÀ» »© ³¾ ¶§ °¡Àå Å« °ªÀ» ¸®ÅÏÇÑ´Ù´Â Á¡ÀÌ ´Ù¸£´Ù. ÇÊ¿äÇÑ µ¿ÀÛÀº push, pop, top ¼¼°¡Áö¹Û¿¡ ¾ø´Ù. ÅÛÇø´ ¼±¾ðÀº ´ÙÀ½°ú °°´Ù.

 

template<class T, class Cont = vector<T>, class BinPred = less<Cont::value_type> >

class priority_queue { ... }

 

T´Â ¿ì¼± ¼øÀ§ Å¥¿¡ ÀúÀåµÉ ŸÀÔÀÌ°í Cont´Â ±âº» ÄÁÅ×À̳ÊÀÌµÇ µðÆúÆ®´Â º¤ÅÍ·Î µÇ¾î ÀÖ´Ù. ¿øÇÒ °æ¿ì µ¥Å©·Î º¯°æÇÒ ¼ö ÀÖÁö¸¸ ÀÓÀÇ Á¢±ÙÀÌ ¾ÈµÇ´Â ¸®½ºÆ®´Â ¾µ ¼ö ¾ø´Ù. BinPred´Â °ªÀÇ ºñ±³¿¡ »ç¿ëÇÒ ºñ±³ ÇÔ¼ö °´Ã¼ÀÌµÇ µðÆúÆ®´Â less·Î µÇ¾î ÀÖÀ¸¹Ç·Î Å« °ªÀÌ °¡Àå ¸ÕÀú ³ª¿Â´Ù. »ý¼ºÀÚ´Â ´ÙÀ½°ú °°´Ù.

 

explicit priority_queue(const BinPred& pr = BinPred());

priority_queue(const value_type *first, const value_type *last, const BinPred& pr = BinPred());

 

ºñ¾î Àִ ä·Î »ý¼ºÇÒ ¼öµµ ÀÖ°í ¹Ýº¹ÀÚ ±¸°£À¸·Î ´Ù¸¥ ÄÁÅ×À̳ʿ¡ ÀÖ´Â °ªÀ» ä¿ï ¼öµµ ÀÖ´Ù. ¿ª½Ã °£´ÜÇÑ ¿¹Á¦¸¸ ¸¸µé¾î º¸ÀÚ.

 

¿¹ Á¦ : priority_queue

#include <iostream>

#include <queue>

using namespace std;

 

void main()

{

     priority_queue<int> q;

 

     q.push(1);

     q.push(3);

     q.push(2);

 

     while (!q.empty()) {

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

          q.pop();

     }

}

 

¿ì¼± ¼øÀ§ Å¥´Â Å¥¿Í °°ÀÌ queue Çì´õ ÆÄÀÏ¿¡ Á¤ÀǵǾî ÀÖÀ¸¹Ç·Î º°µµÀÇ Çì´õ¸¦ °¡ÁöÁö´Â ¾Ê´Â´Ù. 1, 3, 2¸¦ ³Ö°í »©³Â´Âµ¥ 3, 2, 1ÀÌ Å©±â¼øÀ¸·Î Â÷·Ê´ë·Î ÀÐÇôÁø´Ù. ÀÌ·± Ư¼ºÀ» ÀÌ¿ëÇÏ¸é ¿ì¼± ¼øÀ§°¡ ÀÖ´Â ÀڷḦ ´Ù·ê ¶§ ¾ÆÁÖ Æí¸®ÇÏ´Ù. ¿¹¸¦ µé¾î ÇÒÀÏ ¸ñ·ÏÀ» °ü¸®ÇÏ´Â ÇÁ·Î±×·¥¿¡¼­ ÇÒÀϵéÀÇ ¸ñ·ÏÀ» ¹«Á¶°Ç ¿ì¼± ¼øÀ§ Å¥¿¡ »ðÀÔÇÏ°í ²¨³¾ ¶§´Â ±ÞÇÑ ¼ø¼­´ë·Î ²¨³» ó¸®Çϵµ·Ï ÇÒ ¼ö ÀÖ´Ù.