ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
1절. Container ¿¡ ´ëÇØ¼STL À» ¼³¸íÇÏ¸é¼ µîÀåÇÏ´Â ÄÁÅ×À̳Ê(ÀúÀå¼Ò)¶õ °´Ã¼¸¦ ¿ø¼Ò·Î ÀúÀåÇÒ¼ö ÀÖ´Â ¿µ¿ªÀ» ¸»ÇÑ´Ù. À̴ ƯÁ¤ µ¥ÀÌŸ ŸÀÔ¸¸À» ÀúÀåÇÒ¼ö ÀÖ´Â ¹è¿°ú´Â »ó´çÈ÷ Ʋ¸°°³³äÀÌ´Ù. C++(ȤÀº °´Ã¼ÁöÇâÇùÖ) À» ÇØºÃ´Ù¸é ¾Ë°ÚÁö¸¸ ´Ü¼øÈ÷ ¸»Çؼ °´Ã¼¶õ ¹¦»çµÉ¼ö ÀÖ´Â ¸ðµç »ç¹°À» ¸»ÇÑ´Ù. ÀÌ·¯ÇÑ °´Ã¼¸¦ ¿ø¼Ò·Î ÀúÀåÇÒ¼ö Àִٴ Ư¼º¶§¹®¿¡ ÄÁÅ×À̳ʴ ¸ðµç Á¾·ùÀÇ µ¥ÀÌŸÀúÀåÀÌ °¡´ÉÇϵµ·Ï µÇ¾îÀÖ´Ù. ÀÌ·¯ÇÑ Æ¯¼ºÀº ¾ÕÀÇ STL(1)¿¡¼ ¾ð±ÞÇßµíÀÌ C++ Template À» ÀÌ¿ëÇØ¼ ±¸ÇöµÈ´Ù(´õ ÀÚ¼¼È÷ ¸»ÇÏÀÚ¸é Class Template). STL Àº ´Ù¾çÇÑ ÀڷᱸÁ¶·Î »ç¿ëµÉ¼ö ÀÖ´Â ¾à 10°¡Áö Á¤µµÀÇ ÄÁÅ×À̳ʵéÀ» Á¦°øÇÑ´Ù. ¿©±â¿¡´Â ¹è¿À» ÀϹÝÈ ½ÃŲ vector, queue ·Î »ç¿ë°¡´ÉÇÑ deque, ¿ä¼Ò¸¦ °¡¸£Å°´Â ÷ÀÚ·Î int Çü´ë½Å¿¡ ´Ù¸¥ Çü(char * À̳ª string)À» »ç¿ëÇÒ¼ö ÀÖ´Â map µî.. ÀÌÀÖÀ¸¸ç, ÀÌ·¯ÇÑ ´Ù¾çÇÑ ÄÁÅ×À̳ʵéÀ» »ç¿ëÇÏ¿©¼ ½±°Ô È®Àå °¡´ÉÇÑ ÀڷᱸÁ¶¸¦ ´Ü ¸îÁÙÀÇ ÄÚµùÀ¸·Î ½±°Ô ±¸ÇöÇÒ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ 10°¡Áö Á¤µµ µÇ´Â ÄÁÅ×À̳ʵéÀº ´Ù½Ã Sequence ÄÁÅ×À̳ʿÍ, Association ÄÁÅ×À̳ʷΠũ°Ô ³ª´¼ö ÀÖ´Ù. ¾ÕÀ¸·Î ÀÌ µÎ°¡Áö Á¾·ùÀÇ ÄÁÅ×À̳ʸ¦ ±âÁØÀ¸·Î ÇØ¼ ´Ù¾çÇÑ ÄÁÅ×À̳ʵéÀÇ »ç¿ë¹æ¹ý¿¡ ´ëÇØ¼ ¾Ë¾Æº¸µµ·Ï ÇÒ°ÍÀÌ´Ù. ±×·¯³ª À̹ø¹®¼¿¡¼´Â Sequence ÄÁÅ×À̳ʸ¸À» ´Ù·ê °ÍÀ̸ç Association ÄÁÅ×À̳ʿ¡ ´ëÇÑ ³»¿ëÀº ´ÙÀ½ ±â»ç¿¡¼ ´Ù·ç°Ô µÉ°ÍÀÌ´Ù. 2절. Sequence ÄÁÅ×À̳Ê2.1절. Sequence ÄÁÅ×À̳ʶõSequence ÄÁÅÍÀ̳ʿ¡´Â vector, deque, list, stack µîÀÌ Æ÷ÇԵǾî ÀÖ´Ù. À̵éÀ» Sequence ¶ó°í ºÎ¸£´Â ÀÌÀ¯´Â ¹è¿°ú °°ÀÌ ¼±ÇüÀûÀ¸·Î µ¥ÀÌŸ°¡ ³ª¿µÇ±â ¶§¹®ÀÌ´Ù. °¢ ÄÁÅ×À̳ÊÀÇ À̸§¿¡¼ ´«Ä¡¸¦ ë°ÚÁö¸¸ deque ´Â queue ÀڷᱸÁ¶¸¦ À§Çؼ, list ´Â linked list, stack ´Â stack ÀڷᱸÁ¶¸¦ Áö¿øÇÒ¼ö ÀÖ´Â ÄÁÅ×À̳ÊÀÌ´Ù. À̵é Sequence ÄÁÅ×À̳ʵéÀº ¹è¿°ú ¸Å¿ì ºñ½ÁÇÑ ¼ºÁúÀ» Áö´Ï°í ÀÖÀ¸¸ç, ¹è¿Ã³·³ ÷ÀÚ·Î Á¢±ÙÀÌ °¡´ÉÇÏ´Ù. ÄÁÅ×À̳ʵéÀº ´ëºÎºÐ °øÅëÀÇ ÀÎÅÍÆäÀ̽º(ÇÔ¼ö)¸¦ Á¦°øÇÑ´Ù. ÇÔ¼öÀÇ À̸§µµ ¶È°°°í, ÇÏ´ÂÀϵµ °°Àº°æ¿ì°¡ »ó´çÈ÷ ¸¹´Ù. ±×·¯¹Ç·Î ÇϳªÀÇ ÄÁÅ×À̳ʸ¦ »ç¿ëÇÏ´Â ¹ý¸¸ È®½ÇÇÏ°Ô ÀÍÇôµµ, ³ª¸ÓÁö ÄÁÅ×À̳ʵéÀº º°·Î ¾î·ÆÁö ¾Ê°Ô ÀÍÈú¼ö ÀÖÀ»°ÍÀÌ´Ù. (¿¹¸¦µé¾î vector ¿¡¼ ¸¶Áö¸·¿¡ ¿ø¼Ò ÀÔ·ÂÀ» À§Çؼ ¾²ÀÌ´Â push_back() Àº list, deque, stack µî¿¡µµ Á¸ÀçÇϸç, µ¿ÀÏÇÑ ÀÏÀ» ÇÑ´Ù. 2.1.1절. vector2.1.1.1절. Ư¡vector Àº map °ú ÇÔ²² °¡Àå ÀÚÁÖ »ç¿ëµÇ´Â ÄÁÅ×À̳ÊÀÌ´Ù. ´Ü¼øÈ÷ ¹è¿À» ¸ðµç ÀÚ·áÇüÀ» ¿ø¼Ò·Î °¡Áú¼ö ÀÖµµ·Ï ÀϹÝÈ ½ÃŲ°ÍÀ̶ó°í º¸¸éµÈ´Ù. ¹è¿°ú °°ÀÌ Ã·ÀÚ¿¬»êÀÌ °¡´ÉÇÏ´Ù. °¢°¢ÀÇ ¿ä¼Ò¿¡ ·£´ýÇÏ°Ô Á¢±ÙÀÌ °¡´ÉÇϸç, vector ÀÇ ¸¶Áö¸· ¿ä¼Ò¸¦ »èÁ¦Çϴµ¥´Â »ó¼ö½Ã°£ÀÌ ¼Ò¿äµÈ´Ù. ¹Ý¸é óÀ½°ú Áß°£¿¡ ÀÖ´Â ¿ä¼Ò¸¦ »èÁ¦Çϴµ¥¿¡´Â linear time(¼±Çü½Ã°£) ÀÌ ¼Ò¿äµÈ´Ù. óÀ½°ú Áß°£¿¡ ÀÖ´Â ¿ä¼Ò¸¦ »èÁ¦Çϴµ¥¿¡ linear time ÀÌ °É¸®´Â ÀÌÀ¯´Â ¹è¿°ú ¸Å¿ì ºñ½ÁÇÏ°Ô ¸¸¾à Áß°£¿¡ ÀÖ´Â ¿ä¼Ò¸¦ »èÁ¦ ÇßÀ»°æ¿ì ±× µÚ¿¡ ÀÖ´Â ¿ä¼ÒµéÀ» ¸ðµÎ ÇÑľ¿ ¾ÕÀ¸·Î ¹Ð¾î³Ö¾î¾ß ÇÏ´Â ¿¬»êÀ» ÇÊ¿ä·Î Çϱ⠶§¹®ÀÌ´Ù(Áï ¸¶Áö¸·¿¡ ¿ä¼Ò¸¦ Ãß°¡Çϰųª »èÁ¦ÇÒ¶§ È¿À²ÀûÀÓ). ±×·¯¹Ç·Î ¸¸¾à Áß°£¿¡ ÀÖ´Â ¿ä¼Ò¸¦ ÀÚÁÖ »èÁ¦ÇÏ´Â ¿¬»êÀÌ ÇÊ¿äÇÒ°æ¿ì¿¡ vector ¸¦ »ç¿ëÇÏ´Â°Ç ¸Å¿ì ºñÈ¿À²ÀûÀÌ µÉ¼ö ÀÖ´Ù. ÀÌ·²°æ¿ì¿¡´Â list °°Àº ´Ù¸¥ ÄÁÅ×À̳ʸ¦ »ç¿ëÇØ¾ß ÇÒ°ÍÀÌ´Ù. STL¿¡¼ Á¦°øÇÏ´Â ´Ù¸¥ ÄÁÅ×À̳ʵé°ú ¸¶Âù°¡Áö·Î vector µµ ÀÚ½ÅÀÌ ¾Ë¾Æ¼ ¸Þ¸ð¸® °ü¸®¸¦ ÇÑ´Ù. 2.1.1.2절. ¼±¾ðvector ÄÁÅ×À̳ʴ ´ÙÀ½°ú °°ÀÌ ¼±¾ðµÇ¾î ÀÖ´Ù. 표 1. ÅÛÇø´ Parameters
¶ÇÇÑ vector Àº ÃÖÃÊ¿¡ »ý¼ºµÉ¶§, ±âº»ÀûÀÎ Å©±â¿Í ä¿öÁú °ªÀ» ÁöÁ¤ÇÒ¼ö ÀÖ´Ù.
2.1.1.3절. ÀÚÁÖ »ç¿ëµÇ´Â ¸â¹ö ÇÔ¼öµéÀ§¿¡¼ º¸¸é vector ¸¦ ´ÜÁö ƯÁ¤ Çü(type)¿¡ °ü°è¾øÀÌ ¸â¹ö ¿ä¼Ò¸¦ °¡Áú¼ö ÀÖ´Â ¹è¿ Á¤µµ·Î¸¸ Ä¡ºÎÇÒ¼öµµ ÀÖÀ»°ÍÀÌ´Ù. ±×·¯³ª vector Àº Ŭ·¡½º ÅÛÇø´ÀÇ Æ¯Â¡À» »ì·Á¼ ¸Å¿ì ´Ù¾çÇÑ ÇÔ¼öµéÀ» Á¦°øÇϸç, ¿ì¸®´Â ÀÌ·¯ÇÑ ÇÔ¼öµéÀ» ÅëÇØ¼ º°µµ·Î ÄÚµùÇÒÇÊ¿ä ¾øÀÌ ¿øÇÏ´Â ÀÛ¾÷À» ÇÒ¼ö ÀÖ°Ô µÈ´Ù. ÀÌ·¯ÇÑ ÇÔ¼öµéÀº ±²ÀåÈ÷ ¸¹±â ¶§¹®¿¡ ºñ±³Àû »ç¿ëºóµµ°¡ ³ôÀº °Íµé¸¸À» ¼³¸íÇϵµ·Ï ÇϰڴÙ. 2.1.1.3.1절. À§Ä¡ °ü·Ãvector ¿¡¼ ¿ø¼Ò¿¡ Á¢±ÙÇϱâ À§ÇÑ °¡Àå °£´ÜÇÑ ¹æ¹ýÀº ¹è¿°ú °°ÀÌ ¹è¿Ã·ÀÚ¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ýÀÌ´Ù. ±×·¯³ª À̿ʹ ´Þ¸® Æ÷ÀÎÅÍ¿Í °°ÀÌ Á¢±ÙÀÌ °¡´ÉÇÏ´Ù. ÀÌ·¯ÇÑ Á¢±ÙÀ» À§Çؼ iterator ¶ó´Â °ÍÀ» Á¦°øÇÑ´Ù. iterator ´Â Æ÷ÀÎÅÍ¿Í ¸Å¿ì ºñ½ÁÇÏ°Ô ¿ø¼ÒÀÇ À§Ä¡¸¦ °¡¸£Å°´Â ¿ªÈ°À» ÇÑ´Ù. iterator ´Â ´ÙÀ½°ú °°ÀÌ ¼±¾ðµÇ¾î¼ »ç¿ëÇÒ¼ö ÀÖ´Ù.
2.1.1.3.2절. »ðÀÔ/»èÁ¦ °ü·Ãvector Àº »ðÀÔ°ú °ü·ÃÇØ¼ 2°³ÀÇ ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù. insert ¿Í push_back Àε¥, À̵éÇÔ¼ö´Â ´Ù¸¥ sequence ÄÁÅ×À̳ʿ¡ °°ÀºÀ̸§À¸·Î Á¦°øµÇ°í ÀÖÀ¸¸ç, ÀÚÁÖ »ç¿ëµÇ´Â ÇÔ¼öµéÀÓÀ¸·Î ÀÍÇôµÎµµ·Ï ÇÏÀÚ. push_back ´Â ÄÁÅ×À̳ÊÀÇ ¸¶Áö¸·¿¡ ¿ø¼Ò¸¦ »ðÀÔÇÒ¶§ »ç¿ëÇϸç, insert ´Â ÀÓÀÇÀÇ Áö¿ª¿¡ ¿ø¼Ò¸¦ »ðÀÔÇϰíÀÚ ÇÒ¶§ »ç¿ëÇÑ´Ù. ¾Õ¿¡¼ ¸»Çß´Ù ½ÃÇÇ, vector ÀÇ °æ¿ì Áß°£¿¡ ¿ø¼Ò¸¦ »ðÀ̽ÃŰ´Â°Ç »ó´çÈ÷ ºñÈ¿À²ÀûÀÌ´Ù. »èÁ¦ÇÒ¶§¿Í ¸¶Âù°¡Áö·Î Áß°£¿¡ insert ½Ãų°æ¿ì insert À§Ä¡ÀÇ µÚ¿¡ ÀÖ´Â ¸ðµç ¿ø¼ÒÀÇ À§Ä¡°¡ Àç Á¶Á¤µÇ±â ¶§¹®ÀÌ´Ù. Áï insert À§Ä¡ÀÇ µÚ¿¡ 100°³ÀÇ ¿ø¼Ò°¡ ´õ ÀÖ´Ù¸é, 100¹øÀÇ º¹»ç°¡ ´õ ÀϾ°Ô µÈ´Ù.
swap()À» ÀÌ¿ëÇϸé ÇöÀç º¤ÅÍÀÇ ³»¿ëÀ» ´Ù¸¥ º¤ÅÍ·Î ´ë½Å ä¿ï¼ö ÀÖ´Ù.
2.1.1.3.3절. ¿ø¼ÒÀÇ Å©±â°ü·Ãsize()¸¦ ÅëÇØ¼ ÇöÀç vector ÄÁÅ×À̳ʿ¡ ¸î°³ÀÇ ¿ø¼Ò°¡ µé¾îÀÖ´ÂÁö °è»êÇØ ³¾¼ö ÀÖ´Ù. empty()¸¦ ÀÌ¿ëÇϸé ÇöÀç ¿ø¼Ò°¡ ÀÖ´ÂÁö ¾ø´ÂÁö¸¦ ¾Ë¼ö ÀÖ´Ù. ½ÇÁ¦·Î size() ¸¦ ÅëÇØ¼ ¿ø¼Ò°¡ ºñ¾îÀÖ´ÂÁö ¾Ë¼öµµ ÀÖÁö¸¸, empty()°¡ ´õ È¿À²ÀûÀ̹ǷΠ´ÜÁö ÄÁÅ×À̳ʰ¡ ºñ¾îÀÖ´ÂÁö¸¸ È®ÀÎÇϰíÀÚ ÇÑ´Ù¸é empty() ¸¦ »ç¿ëÇϵµ·Ï ÇÑ´Ù.
vector ÀÇ °æ¿ì ¿ø¼ÒÀÇ °¹¼ö°¡ ´Ã¾î³ª¸é ÀÚµ¿ÀûÀ¸·Î ÄÁÅ×À̳ÊÀÇ Å©±â°¡ Á¶ÀýµÈ´Ù°í Çߴµ¥, ÇϳªÀÇ ¿ø¼Ò°¡ µé¾î¿Ã¶§ ¸¶´Ù ÄÁÅ×À̳ÊÀÇ Å©±â¸¦ Á¶ÀýµÇ´Â °Íº¸´Ù´Â, ¾î´ÀÁ¤µµ Å©±â¸¦ ¹Ì¸®ÇÒ´ç ÇØ³õ°í ¿ø¼Ò¸¦ ¹Þ¾ÆµéÀÌ´Â°Ô ÈξÀ´õ È¿À²ÀûÀÏ °ÍÀÌ´Ù. ÀÌó·³ Ãʱ⿡ vector ÀÇ Å©±â¸¦ ¾î´ÀÁ¤µµ ÁöÁ¤ÇØÁÖ¾î¼ Å©±âÁ¶Àý(¸Þ¸ð¸®ÇÒ´ç)À» ÃÖ¼ÒÇѵµ·Î ÀϾ·Ï Á¶ÀýÇÒ¼ö ÀÖ´Ù. reserve() ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼ ÀÌ·¯ÇÑ ÀϵéÀ» ÇÒ¼ö ÀÖ´Ù. ÇѸ¶µð·Î ¸»Çؼ »ç¿ëÀÚ°¡ »ç¿ëµÉ ¸Þ¸ð¸®ÀÇ ¾çÀ» ¹Ì¸® °è»êÇØ¼ ¸Þ¸ð¸®ÀÇ Å©±â¸¦ ÀçÇÒ´ç(reallocation)ÇÏ´Â °Å¶ó°í º¸¸é µÈ´Ù. ÇöÀç ÇÒ´çµÈ ¸Þ¸ð¸®ÀÇ ¾ç(¹Þ¾ÆµéÀϼö ÀÖ´Â ¿ø¼ÒÀÇ Å©±â)Àº capacity() ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼ ¾Ë¾Æ³¾¼ö ÀÖ´Ù. reserve()¿¡ ÀÇÇÑ ¸Þ¸ð¸® ÇÒ´çÀº ¼º´É¿¡ Áß¿äÇÑ ¿µÇâÀ» ¹ÌÄ¡¹Ç·Î vector »Ó¸¸ ¾Æ´Ï¶ó ´Ù¸¥ ÄÁÅ×À̳ʸ¦ ¾µ¶§´Â ¾î´ÀÁ¤µµÀÇ ¿ø¼Ò¸¦ ÀÌ¿ëÇÒ°ÍÀÎÁö¸¦ ¿¹ÃøÇؼ Àû´çÇÑ Å©±â¸¦ ÇÒ´çÇϵµ·Ï ÇÏÀÚ.
2.1.2절. deque2.1.2.1절. Ư¡À̸§¿¡¼µµ ¾Ë¼ö ÀÖ°ÚÁö¸¸ queue ÀڷᱸÁ¶¸¦ À§ÇØ ÃÖÀûÈ µÇ¾ú´Ù. ±âº»ÀûÀÎ »ç¿ë¹æ¹ýÀº vector ¿Í ¸Å¿ì °°À¸¸ç, vector ¿Í´Â ´Þ¸® ÄÁÅ×À̳ÊÀÇ ¸Ç ¾Õ¿¡¼ ÇàÇØÁö´Â »ðÀÔ/»èÁ¦¿¡ ´ëÇØ¼ ¸Å¿ì ºü¸¥ ¿¬»ê(»ó¼ö½Ã°£)ÀÌ °¡´ÉÇÏ´Ù. º¸ÅëÀÇ queue ÀڷᱸÁ¶´Â ¸Ç¾Õ¿¡ ¿ø¼ÒÀÇ »ðÀÔÀ» ÇÏÁö ¾Ê´Â°Ô ¿øÄ¢ÀÌÁö¸¸ deque ´Â ¸Ç¾Õ¿¡ ¿ø¼ÒÀÇ »ðÀÔµµ Áö¿øÇÑ´Ù. ÀÌ´Â ÀڷᱸÁ¶ÀÇ ¸ÇÀÇ ¿ä¼Ò¸¦ ºó¹øÇÏ°Ô Àаí/»èÁ¦ ÇØ¾ßÇÏ´Â queue ÀÇ Æ¯¼ºÀ» È¿À²ÀûÀ¸·Î Áö¿øÇÒ¼ö ÀÖ¾î¾ß Çϱ⠶§¹®ÀÌ´Ù. À̿ܿ¡´Â vector ¿Í ¿ÏÀüÈ÷ »ç¿ë¹æ¹ýÀÌ ¶È°°´Ù°í º¸¸é µÈ´Ù. vector °ú ¸¶Âù°¡Áö·Î °¢ ¿ä¼Ò¿¡ ·£´ýÇÏ°Ô Á¢±Ù°¡´ÉÇÏ´Ù. vector ·Î ¸¸µé¾îÁø Äڵ带 dequeu ·Î º¯°æÇÏ°í ½ÍÀ¸¸é ¼±¾ð¿¡¼ vector ¸¸ deque ·Î º¯°æ½ÃÄÑ ÁÖ¸é µÈ´Ù. ÇÏÁö¸¸ Áß°£¿¡ ¿ä¼Ò¸¦ »ðÀÔ/»èÁ¦Çϴµ¥¿¡´Â vector ¿Í °°ÀÌ ¼±Çü½Ã°£ÀÌ ¼ÒºñµÈ´Ù. Áß°£¿¡ ¿ä¼Ò »ðÀÔ ,»èÁ¦ ÀÛ¾÷ÀÌ ¸¹ÀÌ ¿ä±¸µÈ´Ù¸é vector À̳ª deque ´ë½Å list ¸¦ ¾²´Â°Ô ´õ¿í È¿À²ÀûÀÌ´Ù. vector °ú ¸¶Âù°¡Áö·Î »ý¼ºµÇ¸é¼ ÇÒ´ç±â°¡ ¸¸µé¾îÁ®¼ ÀÚµ¿ÀûÀ¸·Î ¸Þ¸ð¸®¸¦ °ü¸®ÇÑ´Ù. 2.1.2.2절. ¼±¾ðvector¿Í °°´Ù. 표 2. ÅÛÇø´ Parameters
2.1.2.3절. ÀÚÁÖ »ç¿ëµÇ´Â ¸â¹ö ÇÔ¼öµé¸ðµç »ç¿ë¹æ¹ý ½ÉÁö¾î´Â ÇÔ¼ö À̸§µé±îÁöµµ vector¿Í ¶È°°´Ù. À§ÀÇ vector ¸¦ ¼³¸íÇѰ÷¿¡¼ vector À» deque·Î¸¸ º¯°æ½ÃŰ¸é µÈ´Ù. vector ¿¡¼´Â Á¦°øµÇÁö ¾Ê´Â ÇÔ¼ö·Î pop_front()¿Í, push_front()°¡ ÀÖ´Ù. pop_front()´Â ¸Ç¾ÕÀÇ ¿ø¼Ò¸¦ »èÁ¦ÇÒ¶§, push_front() ´Â ¸Ç¾Õ¿¡ ¿ø¼Ò¸¦ »ðÀÔÇÒ¶§ »ç¿ëÇÑ´Ù.
2.1.3절. list2.1.3.1절. Ư¡STL ¿¡¼ Á¦°øÇÏ´Â list ´Â double linked list ¸¦ ÀϹÝÈ ½ÃŲ ÅÛÇø´ ¹öÁ¯À̶ó°í »ý°¢ÇÏ¸é µÈ´Ù. double linked list ÀÇ Æ¯Â¡À» ¶ÇÇÑ ±×´ë·Î °¡Áö°í ÀÖ´Ù. vector ¿Í deque ´Â ÀÓÀÇ Á¢±ÙÀÌ °¡´ÉÇÏ´Ù°í Çß´Ù. ÀÌ´Â vector, deque °¡ ¹è¿ÀÇ Æ¯Â¡À» °¡Áö±â ¶§¹®À¸·Î ÷ÀÚ¸¦ ÀÌ¿ëÇÑ ÀÓÀÇ Á¢±ÙÀÌ °¡´ÉÇÏ´Ù. ±×·¯³ª list ´Â ÀÌ·¯ÇÑ ÀÓÀÇ Á¢±ÙÀ» ÇÒ¼ö°¡ ¾ø´Ù(doublke linked list µµ ¸¶Âù°¡Áö). ´ë½Å¿¡ Áß°£¿¡¼ÀÇ ¿ä¼Ò »ðÀÔ/»èÁ¦¸¦ ¸Å¿ì È¿À²ÀûÀ¸·Î ó¸®ÇÒ¼ö ÀÖ´Ù. vector, deque ¿Í °°Àº ¸Þ¸ð¸® ¿¬»êÀÌ ÀϾÁö ¾Ê±â ¶§¹®ÀÌ´Ù. ´ÜÁö ´ÙÀ½¿ä¼Ò¸¦ °¡¸£Å³¼ö ÀÖµµ·Ï Æ÷ÀÎÅ͸¸ ÀçÁ¶Á¤ÇØ ÁÖ¸é µÇ±â ¶§¹®ÀÌ´Ù. ÀÓÀÇ Á¢±ÙÀÌ ¾ÈµÇ¹Ç·Î ´ç¿¬È÷ ÷ÀÚ¸¦ ÀÌ¿ëÇØ¼´Â ¿ä¼Ò¿¡ Á¢±ÙÇÒ¼ö ¾ø´Ù. ´ÜÁö ÀÌÅÍ·¹ÀÌÅ͸¦ ÀÌ¿ëÇØ¼ Á¢±ÙÀÌ °¡´ÉÇÏ´Ù. double linked list ÀÇ ¿ä¼Ò¿¡ Á¢±ÙÇϱâ À§Çؼ´Â Æ÷ÀÎÅ͸¦ ÀÌ¿ëÇØ¾ß Çϴ°Ͱú ¸¶Âù°¡ÁöÀÌ´Ù. ÀÓÀÇ Á¢±ÙÀÌ Æ÷±âµÇ´Â´ë½Å¿¡ linked list ÀÇ Æ¯Â¡À» ÀÌ¿ëÇÒ¼ö ÀÖ´Â ´Ù¾çÇÑ ´Ù¸¥ ±â´ÉµéÀÌ ÇÔ¼ö·Î Á¦°øµÇ¾î Áø´Ù. ±×·¯³ª list µµ ´ÜÁ¡ÀÌ Àִµ¥, Ư ƯÁ¤ ¿ø¼Ò¿¡ Á¢±ÙÇϱâ À§Çؼ´Â óÀ½ºÎÅÍ ¿ø¼Ò¸¦ Âß Ã£¾Æ¼ Á¢±ÙÇØ¾ß ÇÑ´Ù´Â Á¡ÀÌ´Ù. ÀÓÀÇ Á¢±ÙÀÌ ¾ÈµÈ´Ù. ±×·¯¹Ç·Î ¿ø¼ÒµéÀÌ ¼·Î ¸Ö¸® ¶³¾îÁ® ÀÖ´Â »óȲ¿¡¼ ¿¬»êÀ» ÇÏ°Ô µÇ¸é ºñÈ¿À²ÀûÀÌ µÉ¼ö°¡ ÀÖ´Ù. 2.1.3.3절. ÀÚÁÖ »ç¿ëµÇ´Â ¸â¹ö ÇÔ¼öµélist ÀÇ linked list ·Î½áÀÇ Æ¯Â¡¶§¹®¿¡ ¿ø¼ÒÀÇ »ðÀÔ/»èÁ¦¿¡ ´ëÇØ¼ °¡Àå Æø³ÐÀº Áö¿øÀ» ÇØÁØ´Ù. push_back(), push_pop(), pop_front(), pop_back() µîÀÇ ¸ðµç ÇÔ¼öµéÀ» Áö¿øÇϸç, Áß°£¿¡ ¿ä¼Ò¸¦ ÀÔ·ÂÇϱâ À§ÇÑ erase(), insert() µµ Áö¿øÇÑ´Ù. ¹°·Ð erase ¿Í insert ´Â vector °ú deque ¿¡¼µµ Áö¿øÇÏÁö¸¸ È¿À²¿¡¼ ¸¹Àº Â÷À̰¡ ³´Ù. list ´Â ÀÌ·¯ÇÑ ¸ðµç ¿¬»êÀ» »ó¼ö½Ã°£¿¡ ³¡³¾¼ö ÀÖ´Ù. ¸µÅ©¸¸ ´Ù½Ã ¸¸µé¸é µÇ±â ¶§¹®ÀÌ´Ù. ÀÌ·¸°Ô ¸Þ¸ð¸® Àç¹èÄ¡¸¦ ÅëÇÏÁö ¾Ê°í ¸µÅ© Àç¹èÄ¡¸¸À» ÅëÇØ¼ ¿ä¼ÒÀÇ »ðÀÔ/»èÁ¦°¡ °¡´ÉÇÏ´Ù´Â ÀåÁ¡¶§¹®¿¡ ´Ù¸¥ ÄÁÅ×À̳ʿ¡¼´Â Á¦°øÇÏÁö ¾Ê´Â ¸î°¡Áö Ưº°ÇÑ ÇÔ¼öµéÀ» Á¦°øÇÑ´Ù.
3절. °á·ÐÀÌ»ó sequence ÄÁÅ×À̳ʿ¡ ´ëÇØ¼ ¾Ë¾Æº¸¾Ò´Ù. º¸¸é ¾Ë°ÚÁö¸¸, ¾ó¸¶³ª À¯¿¬ÇÏ°Ô ÀڷᱸÁ¶¸¦ ±¸ÇöÇÒ¼ö Àִ°¡¸¦ ¾Ë¼ö ÀÖÀ»°ÍÀÌ´Ù. ¸µÅ©µå ¸®½ºÆ®ÀÌ°Ç Å¥ÀÌ°Ç ½ºÅÃÀÌ°Ç °£¿¡ °í¹Î¾øÀÌ ±¸Çö°¡´ÉÇÏ´Ù. ÀÌ¿Í ÇÔ²² ³ªÁß¿¡ »ç¿ëµÉ Àú³Ê¸¯ ¾Ë°í¸®ÁòÀ» »ç¿ëÇϸé ÀڷᱸÁ¶¿¡ °¢Á¾ ¾Ë°í¸®Áò±îÁö Àû¿ë½ÃÄѼ »ç¿ëÇÒ¼ö ÀÖ´Ù. ÄÁÅ×À̳ʸ¦ »ç¿ëÇÒ¶§ °¡ÀåÁß¿äÇѰÍÀº ÀÛ¾÷¿¡ °¡Àå È¿À²ÀûÀÎ ÄÁÅ×À̳ʸ¦ »ç¿ëÇØ¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù. »ç½Ç vector ¸¸À¸·Îµµ list, deque ¸¦ ±¸Çö°¡´ÉÇÏ´Ù. ±×·³¿¡µµ list ¿Í deque °¡ Á¸ÀçÇÏ´Â °ÍÀº °¢°¢ÀÇ ÀڷᱸÁ¶¿¡ ´ëÇÑ ¿ä¼ÒÀÇ ¿¬»ê¿¡ Àû´çÇÑ ÄÁÅ×À̳ʰ¡ µû·Î Á¸ÀçÇϱ⠶§¹®ÀÌ´Ù. ¹è¿À» ÀϹÝÈ ½ÃÄѼ °£´ÜÇÏ°Ô »ç¿ëÇÏ°í ½Í´Ù¸é vector À» queue ¿Í °°ÀÌ Ã³À½ °ú ¸¶Áö¸·¿¡ ¿ä¼Ò¸¦ Ãß°¡/»èÁ¦ ½ÃÄÑ¾ß ÇÑ´Ù¸é deque ¸¦ linked list ¿Í °°Àº º¹ÀâÇÑ ¿ä¼ÒÀÇ ¿¬»êÀ» ÇÊ¿ä·Î ÇÑ´Ù¸é list ¸¦ »ç¿ëÇÏ¸é µÈ´Ù. ¿©±â¿¡¼ ´Ù·é ³»¿ëµéÀº Sequence ÄÁÅ×À̳ÊÀÇ ±â´ÉÁß ÀϺκÐÀÌ´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº STL ȨÆäÀÌÁö ¸¦ Âü°íÇϵµ·Ï ÇÏÀÚ.
![]() |
|
|||||||||||||||||||||||||||||||||||||
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|