Âü°í¼Àû;
¢¹ C++ Standard Library Æ©Å丮¾ó¡¤·¹ÆÛ·±½º/ ´ÏÄݶóÀÌ M.Á¶½´Æ¼½º Àú/ ¹®Á¤È¯, ±èÈñÁØ °ø¿ª/ 2003/ ÀÎÆ÷ºÏ
0-1.ÀϹÝÈ ÇÁ·Î±×·¡¹ÖÀÇ ¸ñÀûÀº µ¥ÀÌÅÍÇü°ú ¹«°üÇÑ Äڵ带 ÀÛ¼ºÇÏ´Â °ÍÀ¸·Î ¾Ë°í¸®Áò¿¡ ÁßÁ¡À» µÐ´Ù.
¹è¿, ¿¬°á ¸ñ·Ï ¶Ç´Â ´Ù¸¥ ÄÁÅ×À̳ÊÇü¿¡ ÀÛ¿ëÇÏ´Â ´ÜÀÏ °Ë»ö ÇÔ¼ö¸¦ È®º¸ÇÏ´Â °ÍÀÌ´Ù.
-2.°´Ã¼ ÁöÇâ ÇÁ·Î±×·¡¹ÖÀº ÇÁ·Î±×·¡¹ÖÀÇ µ¥ÀÌÅÍ Ãø¸éÀ» Áß½ÃÇÑ´Ù. Áï, ÇÔ¼ö´Â ÄÁÅ×À̳ʿ¡ ÀúÀåµÈ µ¥ÀÌÅÍ Çü»Ó¸¸ ¾Æ´Ï¶ó ÄÁÅ×ÀÌ³Ê ÀÚüÀÇ µ¥ÀÌÅÍ ±¸Á¶Ã¼¿¡µµ ±¸¼ÓµÇÁö ¾Ê¾Æ¾ß ÇÑ´Ù.
1-1.STLÀÇ ±âº» °³³äÀº µ¥ÀÌÅÍ¿Í µ¿ÀÛÀ» ±¸ºÐÇÏ´Â °Í¿¡ ÀÖ´Ù.
µ¥ÀÌÅÍ´Â ÄÁµ¥ÀÌ³Ê Å¬·¡½º¿¡ ÀÇÇؼ °ü¸®µÇ¸ç, µ¿ÀÛÀº ¼öÁ¤ °¡´ÉÇÑ ¾Ë°í¸®Áò¿¡ ÀÇÇؼ Á¤ÀǵȴÙ. ¹Ýº¹ÀÚ´Â ÀÌ µÎ ÄÄÆ÷³ÍÆ®¸¦ ¿¬°á½ÃÅ°´Â ¿ªÇÒÀ» ÇÑ´Ù. ÀÌ°ÍÀº ¸ðµç ¾Ë°í¸®ÁòÀÌ ¸ðµç Á¾·ùÀÇ ÄÁÅ×ÀÌ³Ê¿Í »óÈ£ ÀÛ¿ëÇÏ´Â °ÍÀ» °¡´ÉÇÏ°Ô ÇÑ´Ù.
-2.STLÀº °¢ ºÎºÐÀÌ Á¶ÈµÇµµ·Ï ¼³°èµÈ ¶óÀ̺귯¸®À̸ç,
STLÀº ±¸¼º ¿ä¼Ò´Â µµ±¸ÀÌÁö¸¸ ´Ù¸¥ µµ±¸¸¦ ±¸¼ºÇÏ´Â ±âº» ¿ä¼ÒÀ̱⵵ ÇÏ´Ù.
2-1.´ÙÁß ¹üÀ§ ó¸®STLÀ» ÀÌÇØÇÏ´Â ¿¼è´Â ¹Ýº¹ÀÚ(Æ÷ÀÎÅ͸¦ ÀϹÝÈÇÑ °Í)¸¦ ÀÌÇØÇÏ´Â °ÍÀ¸·Î, STLÇÔ¼ö´Â ¹Ýº¹ÀÚ¿Í ¹Ýº¹ÀÚ ¹üÀ§¸¦ ´Ù·é´Ù. STLÀº ´Ù¼¸ °¡Áö ¹Ýº¹ÀÚ¸¦ Á¤ÀÇÇϴµ¥ ÇÊ¿äÇÑ ¹Ýº¹ÀÚ Á¾·ù¿¡ µû¶ó ±× ¾Ë°í¸®ÁòÀ» ¹¦»çÇÑ´Ù. ´Ù¼¸ °¡Áö ¾Ë°í¸®ÁòÀº ÀÔ·Â ¹Ýº¹ÀÚ, Ãâ·Â ¹Ýº¹ÀÚ, Á¤¹æÇ⠹ݺ¹ÀÚ, ¾ç¹æÇ⠹ݺ¹ÀÚ, ÀÓÀÇ Á¢±Ù ¹Ýº¹ÀÚÀÌ´Ù.
´ÙÁß ¹üÀ§¸¦ »ç¿ëÇÏ´Â ¾Ë°í¸®ÁòÀ» »ç¿ëÇÒ °æ¿ì, »ç¿ëÀÚ´Â µÎ ¹ø°·Î Á¦°øÇÏ´Â ¹üÀ§°¡ Àû¾îµµ ù ¹ø°·Î Á¦°øµÇ´Â ¹üÀ§º¸´Ù Ä¿¾ß ÇÑ´Ù´Â »ç½ÇÀ» º¸ÀåÇؾ߸¸ ÇÑ´Ù.
-2.¿¡·¯ Çڵ鸵
STL µðÀÚÀÎÀÇ ¸ñÇ¥´Â ¾ÈÁ¤¼ºº¸´Ù´Â ÃÖ°íÀÇ ¼º´É¿¡ ÀÖ´Ù. ¿¡·¯ °Ë»ç´Â ½Ã°£ÀÇ ¼ÒºñÇϱ⠶§¹®¿¡ STL¿¡¼´Â ´ëºÎºÐ ÀÌ·ç¾îÁöÁö ¾Ê´Â´Ù.
-3.¿¹¿Üó¸®...ƯÈ÷, STLÀ» »ç¿ëÇÏ°íÀÚ ÇÒ °æ¿ì´Â ´ÙÀ½°ú °°Àº ¿ä±¸»çÇ×À» ÁöÄѾ߸¸ ÇÑ´Ù. ¡ß ¹Ýº¹ÀÚ´Â ¹Ýµå½Ã À¯È¿Çؾ߸¸ ÇÑ´Ù. ¡ß Á¾·á À§Ä¡ ´ÙÀ½À» °¡¸®Å°´Â ¹Ýº¹ÀÚ´Â ÂüÁ¶ÇÏ´Â ¿ø¼Ò°¡ ¾ø´Ù. ¡ß ¹üÀ§´Â ¹Ýµå½Ã À¯È¿Çؾ߸¸ ÇÑ´Ù.
¼Ò¸êÀÚ¿¡¼ ¿¹¿Ü¸¦ ´øÁöÁö ¾Ê´Â´Ù´Â °ÍÀ» ¹ÙÅÁÀ¸·Î ÇÏ°í ÀÖ´Ù´Â °ÍÀÌ´Ù.
-4.NULL ŸÀÔÀÇ È¥¶õÇÔ ¶§¹®¿¡ C++¿¡¼ NULLÀ» »ç¿ëÇÏ´Â °ÍÀ» ±ÇÀåÇÏÁö ¾Ê´Â´Ù. ´ë½Å '0'À̳ª NIL °°Àº Ưº°ÇÑ »ç¿ëÀÚ Á¤ÀÇ »ó¼ö°¡ ´õ ³ªÀ» ¼ö ÀÖ´Ù.Ç¥ÁØ STL ½ÃÄö½º(sequence) ÄÁÅ×ÀÌ³Ê #0.vector, list, deque, string,
1-1.vector ÅÛÇø´ Ŭ·¡½º ; Àü»ê ºÐ¾ß¿¡¼ º¤ÅͶó´Â ¿ë¾î´Â ¹è¿À» ÀǹÌ
³¡¿¡¼¸¸ °íÁ¤ ½Ã°£ »ðÀÔ°ú »èÁ¦¸¦ Á¦°øÇÏ°í ±× ¿Ü¿¡¼´Â ¼±Çü ½Ã°£ »ðÀÔ°ú »èÁ¦ ±â´ÉÀ» Á¦°øÇϸç,
-2.vectorÀÇ ´É·Âvector Ŭ·¡½º´Â ´õ¿í Æí¸®ÇÑ ÀÎÅÍÆäÀ̽º¿Í ¾ÈÁ¤¼ºÀ¸·Î µ¿Àû ¹è¿ÀÇ ¸ðµç ±â´ÉÀ» Á¦°øÇÑ´Ù.
»ç¿ëÀÚ°¡ vector ¾ÈÀÇ Æ÷ÀÎÅͳª ·¹ÆÛ·±½º, ¹Ýº¹ÀÚ¸¦ °ü¸®Çϰųª ¶Ç´Â ¼Óµµ°¡ ¸ñÇ¥¶ó¸é ¿ë·®À» ¸ÕÀú È®º¸ÇÏ´Â °ÍÀÌ Áß¿äÇÏ´Ù.
-3.±âÁ¸ÀÇ ¹è¿Ã³·³ vector¸¦ »ç¿ëÇϱâÀçÇÒ´çÀ» ÇÇÇϱâ À§Çؼ´Â reserve()¸¦ »ç¿ëÇÏ¸é µÈ´Ù. ÀÌ ÇÔ¼ö´Â »ç¿ëÀÚ°¡ ¿øÇÏ´Â ¸¸ÅÀÇ ¿ë·®À» È®º¸ÇØ ÁØ´Ù.
ù ¹ø° ¿ø¼ÒÀÇ ÁÖ¼Ò ´ë½Å ¹Ýº¹ÀÚ¸¦ Àü´ÞÇؼ´Â ¾ÈµÈ´Ù´Â °ÍÀÌ´Ù. vectorÀÇ ¹Ýº¹ÀÚ´Â ±¸Çö¿¡ µû¶ó Á¤ÀǵǴ ŸÀÔÀ̱⠶§¹®¿¡, ÀÌ°ÍÀº ±âÁ¸ÀÇ Æ÷ÀÎÅÍ¿Í ¿ÏÀüÈ÷ ´Ù¸¥ °ÍÀÌ´Ù.
2-1.list ÅÛÇø´ Ŭ·¡½º ; ÀÌÁß ¿¬°á ¸ñ·ÏÀ» ´ëÇ¥
¸ñ·ÏÀÇ ¾î¶² À§Ä¡¿¡¼µµ ¿ø¼ÒÀÇ °íÁ¤ ½Ã°£ »ðÀÔ°ú »èÁ¦¸¦ Á¦°øÇϸç,
-2.Vector °´Ã¼¸¦ »ç¿ëÇÏ¿© ¹üÀ§¸¦ Á¦°øÇÏ°í set °´Ã¼¸¦ »ç¿ëÇÏ¿© ¼¿ ´ÜÀ§ÀÇ ¸ñ·ÏÀ» Á¦°øÇÒ ¼ö ÀÖ´Ù.vertor¿Í ´Þ¸® ¹è¿ Ç¥±â¿Í ÀÓÀÇ Á¢±ÙÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù.
3-1.deque ÅÛÇø´ Ŭ·¡½º
-2.dequeÀÇ µ¿ÀÛÀº ´ÙÀ½°ú °°Àº °æ¿ì¿¡´Â vector¿Í ´Ù¸£´Ù.
1)deque´Â ¿ë·®¿¡ °üÇÑ ÇÔ¼öµéÀ» Á¦°øÇÏÁö ¾Ê´Â´Ù.(capacity()¿Í reserve())
2)deque´Â ¾ÕºÎºÐ°ú ³¡ºÎºÐ¿¡ Á÷Á¢ÀûÀ¸·Î ¿ø¼Ò¸¦ Ãß°¡, »èÁ¦ÇÒ ¼ö ÀÖ´Â ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù.(push_front()¿Í pop_front()) Ç¥ÁØ STL ¿¬°ü(assosiative) ÄÁÅ×ÀÌ³Ê #0.set, multiset, map, multimap
0-1.¿¬°ü ÄÁÅ×À̳ÊÀÇ ÀÚµ¿ Á¤·ÄÀÇ °¡Àå Å« ÀåÁ¡; ¿ø¼ÒµéÀ» °Ë»öÇÒ °æ¿ì¿¡ ÁÁÀº ¼º´ÉÀ» ¹ßÈÖ
¿¬°ü ÄÁÅ×À̳ʴ ÀϹÝÀûÀ¸·Î ¹ÙÀ̳ʸ® Æ®¸®(binary tree)ó·³ ±¸ÇöµÇ¾î ÀÖ´Ù. ±×·¯¹Ç·Î ¸ðµç ¿ø¼Ò(¸ðµç ³ëµå)µéÀº ÇϳªÀÇ ºÎ¸ð(parent)¿Í µÎ °³ÀÇ ÀÚ½Ä(children)À» °¡Áø´Ù.
auto_ptr #0.Ã¥¿¡ ÀÖ´Â ³»¿ëÀ̶ó Âü°í¸¸ ÇÒ °Í!*.auto_ptrÀº ÀÚ½ÅÀÌ °¡¸®Å°´Â °´Ã¼¿¡ ´ëÇÑ ¼ÒÀ¯Àڷμ ÇൿÇÏ´Â Æ÷ÀÎÅÍÀÌ´Ù.
°á°úÀûÀ¸·Î, auto_ptrÀÌ Æı«µÈ´Ù¸é ¼ÒÀ¯ÇÏ°í ÀÖ´ø °´Ã¼µµ ÀÚµ¿À¸·Î Æı«µÇ´Â °ÍÀÌ´Ù. new·Î ÇÒ´çµÈ ¸Þ¸ð¸®¸¦ °ü¸®Çϱ⠽±°Ô ÇØÁØ´Ù.
#include "memory.h" void demo1 { double * pd = new double; // µ¿ÀûÇÒ´ç(new¿¡ ÀÇÇØ ÇÒ´çµÈ ¸Þ¸ð¸®¿¡¸¸ »ç¿ë) '* pd = 25.5; delete pd; // ¸Þ¸ð¸® ÇØÁ¦ return; } void demo2 { auto_ptr<double> ap (new double); '* ap = 25.5; return; // ¸Þ¸ð¸® ÀÚµ¿ÇØÁ¦ }auto_ptrÀº new/ delete¿Í ¦À» ÀÌ·ë
auto_ptr<double> pd;
double * p_reg = new double;
pd = p_reg; // Çã¿ëµÇÁö ¾ÊÀ½(¾Ï½ÃÀû º¯È¯)
auto_ptr<double> pauto = pd; // Çã¿ëµÇÁö ¾ÊÀ½(¾Ï½ÃÀû º¯È¯)pd = auto_ptr<double>(p_reg); // Çã¿ëµÊ(¸í½ÃÀû º¯È¯) auto_ptr<double> pauto(pd); // È£¿ëµÊ(¾Ï½ÃÀû º¯È¯) |
"¹Ùº¸¾ß!" ¸Þ¸ðÀå_Design HomepageTemplate ½Å¿ë_¸ñÇ¥¾ø´ÂÇà¿î_¶ÇÇѹøÀÇÀç¾ÓÀ»³º´ÂÀ§±â Ã¥°¥ÇÇ_AI(¼º³É°©À¸·Î...) |