38-2-¹Ù.ÇÒ´ç±â

ÀÌ»óÀ¸·Î STLÀ» ±¸¼ºÇÏ´Â ÄÁÅ×À̳Ê, ¹Ýº¹ÀÚ, ¾Ë°í¸®Áò µî ÁÖ¿ä 3¿ä¼Ò¿¡ ´ëÇØ ¾Õ Àý¿¡¼­ °£´ÜÇϰԳª¸¶ ¼Ò°³Çß°í ¶Ç ÇÔ¼ö °´Ã¼¿Í ¾î´ðÅÍ¿¡ ´ëÇØ¼­´Â ºñ±³Àû »ó¼¼ÇÏ°Ô ¿¬±¸ÇØ º¸¾Ò´Ù. ¾Æ¸¶ ¿©±â±îÁö ÀоúÀ¸¸é STLÀÌ ¾öû³ª°Ô º¹ÀâÇÏ´Ù°í ´À²¸ÁúÅÙµ¥ ´ÙÇàÈ÷ ´ÙÀ½ ÀåºÎÅÍ´Â ±×¸® ¾î·ÆÁö ¾Ê´Ù. STLÀ» ±¸¼ºÇÏ´Â ³ª¸ÓÁö ÇÑ ¿ä¼Ò´Â ¸Þ¸ð¸®¸¦ °ü¸®ÇÏ´Â ÇÒ´ç±â(Allocator)¶ó´Â °ÍÀε¥ °£´ÜÇÏ°Ô ¼Ò°³¸¸ Çϱâ·Î ÇÑ´Ù.

º¤ÅÍ, ¸®½ºÆ®, ¸Ê, ¼Â µî STL ÄÁÅ×À̳ÊÀÇ ÀúÀå °¡´ÉÇÑ ÃÖ´ë ¿ä¼Ò °³¼ö¿¡´Â Á¦ÇÑÀÌ ¾ø´Ù. ¿ä¼Ò°¡ »ðÀԵǸé ÇÊ¿äÇÒ ¶§¸¶´Ù ¸Þ¸ð¸®¸¦ Ãß°¡ ÇÒ´çÇϴµ¥ ÀÌ °úÁ¤Àº ÄÁÅ×ÀÌ³Ê ³»ºÎ¿¡ ¿ÏÀü ÀÚµ¿È­ µÇ¾î ÀÖ¾î »ç¿ëÀÚ°¡ ½Å°æ¾²Áö ¾Ê¾Æµµ µÈ´Ù. ÄÁÅ×À̳ʵéÀº ¸Þ¸ð¸® ÇҴ縸À» Àü¹®ÀûÀ¸·Î °ü¸®ÇÏ´Â ÇÒ´ç±â °´Ã¼¸¦ °¡Áö´Âµ¥ º¸Åë ÄÁÅ×À̳ÊÀÇ ÅÛÇø´ Àμö·Î Àü´ÞµÈ´Ù. ´ÙÀ½Àº º¤ÅÍ ÅÛÇø´ÀÇ ¼±¾ð¹®ÀÌ´Ù.

 

template <class Type, class Allocator = allocator<Type> > class vector

 

ù ¹øÂ° Àμö·Î ¿ä¼ÒÀÇ Å¸ÀÔÀ» ÁöÁ¤ÇÏ¸ç µÎ ¹øÂ° Àμö·Î ÇÒ´ç±â¸¦ ÁöÁ¤Çϴµ¥ ÇÒ´ç±â¿¡´Â µðÆúÆ®°¡ ÀÖ´Ù. TypeÇü¿¡ ´ëÇÑ µðÆúÆ® ÇÒ´ç±â´Â allocator<Type>À̸ç TypeÇüÀÇ ÀڷḦ ÀúÀåÇϱâ À§ÇÑ ¸Þ¸ð¸® °ü¸®¸¦ ´ã´çÇÑ´Ù. ¸Þ¸ð¸® ÇÒ´ç ¹æ½ÄÀº ¿©·¯ °¡Áö°¡ Àִµ¥ µðÆúÆ® ÇÒ´ç±â´Â C++ÀÇ new, delete ¿¬»êÀÚ¸¦ »ç¿ëÇÑ´Ù. ¸¸¾à ´Ù¸¥ ¹æ½ÄÀ¸·Î ¸Þ¸ð¸®¸¦ Á÷Á¢ °ü¸®ÇÏ°í ½Í´Ù¸é µðÆúÆ® ÇÒ´ç±â°¡ ¾Æ´Ñ Á÷Á¢ ¸¸µç ÇÒ´ç±â¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.

¿¹¸¦ µé¾î malloc/free¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ°í COM ÀÎÅÍÆäÀ̽º¸¦ ¾µ ¼öµµ ÀÖ°í ¿î¿µÃ¼Á¦ÀÇ °¡»ó ¸Þ¸ð¸®¸¦ Á÷Á¢ ´Ù·ê ¼öµµ ÀÖ´Ù. ÇÒ´ç±â¸¦ Á÷Á¢ ¸¸µé¾î ¾²´Â °¡Àå ½Ç¿ëÀûÀÎ ¿¹´Â ÇÒ´ç, ÇØÁ¦°¡ ¾ÆÁÖ ºó¹øÇϸç Çʿ䷮ÀÌ ¸¹À» ¶§ ¸Þ¸ð¸®¸¦ ¹Ì¸® ¿Õâ ÇÒ´çÇÏ¿© ¸Þ¸ð¸® Ç®À» ¸¸µé¾î ³õ°í ÀÌ ¸Þ¸ð¸®¸¦ ³»ºÎ¿¡¼­ °ü¸®ÇÏ¸ç ¹ø°¥¾Æ ¾²µµ·Ï ÇÒ ¶§ÀÌ´Ù. ¿î¿µÃ¼Á¦ÀÇ °£¼·¿¡¼­ ¹þ¾î³ª ¸Þ¸ð¸®¿¡ ´ëÇÑ ¿ÏÀüÇÑ ÅëÁ¦±ÇÀ» Çà»çÇÏ°í ½ÍÀ» ¶§ ÀÌ·± ¹æ¹ýÀÌ µ¿¿øµÈ´Ù.

±×·¯³ª Çö½ÇÀûÀ¸·Î Á÷Á¢ ÇÒ´ç±â¸¦ ¸¸µé¾î ½á¾ß¸¸ ÇÏ´Â ¿¹¸¦ ã±â´Â ¹«Ã´ ¾î·Æ´Ù. ¿î¿µÃ¼Á¦ÀÇ ¸Þ¸ð¸® °ü¸® ´É·ÂÀÌ Çâ»óµÇ¾î ÃæºÐÈ÷ ½Å·ÚÇÒ¸¸Çϸç ÂËÂËÇÏ°Ô ¸Þ¸ð¸®¸¦ ¾Æ²¸ ½á¾ß ÇÒ¸¸Å­ ½Ã½ºÅÛ ÀÚ¿øÀÌ ºÎÁ·ÇÏÁöµµ ¾Ê±â ¶§¹®ÀÌ´Ù. ÇÒ´ç±â¶ó´Â °ÍÀÌ °ú°Å 16ºñÆ® ½ÃÀý ¼¼±×¸ÕÆ®/¿ÀÇÁ¼Â °°Àº º¹ÀâÇÑ ¸Þ¸ð¸® ±¸Á¶¸¦ Ãß»óÈ­Çϱâ À§ÇÑ ¸ñÀûÀ¸·Î ¸¸µé¾îÁø °ÍÀ̶ó Áö±ÝÀº »ç¿ëÀÚ°¡ Á¤ÀÇÇÒ ÀÌÀ¯°¡ µüÈ÷ ¾ø´Â ¼ÀÀÌ´Ù.

¼³»ç ¸¸µé¾î º¸°í ½Í´Ù°í ÇÏ´õ¶óµµ ±âÁ¸ÀÇ STL ÄÄÆ÷³ÍÆ®¿Í ¿Ïº®ÇÏ°Ô Àß Á¶È­µÇ´Â ÇÒ´ç±â¸¦ ¸¸µå´Â °ÍÀÌ ±×´ÙÁö °£´ÜÇÏÁö ¾ÊÀ½À» Á÷°¨ÀûÀ¸·Î ´À³¥ ¼ö ÀÖÀ» °ÍÀÌ´Ù. Ưº°ÇÑ ÀÌÀ¯°¡ ¾ø´Â ÇÑ µðÆúÆ®¸¸ »ç¿ëÇØµµ ÃæºÐÇÏ´Ù. ¿©±â¼­´Â ÇÒ´ç±âµµ STLÀÇ ±¸¼º ¿ä¼ÒÁß ÇϳªÀÌ°í ²À ¿øÇÒ °æ¿ì ±³Ã¼ °¡´ÉÇÏ´Ù´Â Á¤µµ¸¸ »ó½ÄÀûÀ¸·Î ¾Ë¾Æ µÎÀÚ.