¡Ú ¿ä¾à ¡Ú
´õ¿í »ç¿ëÇÏ±â ÆíÇØÁö°í ±â´Éµµ ´õ ¸¹¾ÆÁø C++11 Ç¥Áذú »õ Ç¥ÁØ¿¡ µû¶ó ¹Ù²ï ¶óÀ̺귯¸®¸¦ dzºÎÇÑ ¿¹Á¦¿Í ÇÔ²² ¼Ò°³ÇÑ´Ù. C++11¿¡ µµÀÔµÈ ¶÷´Ù¸¦ Ç¥ÁØ ÅÛÇø´ ¶óÀ̺귯¸®¿Í ¾Ë°í¸®Áò¿¡ °áÇÕÇØ »ç¿ëÇØº¸ÀÚ. Á¤¸» ªÀº ÄÚµå·Îµµ °¡µ¶¼ºÀ» ³ôÀÌ°í ¹ö±×´Â ÁÙÀÏ ¼ö ÀÖÀ» °ÍÀÌ´Ù. »Ó¸¸ ¾Æ´Ï¶ó Ç¥ÁØ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ¸ç ½±°Ô °ÞÀ» ¼ö ÀÖ´Â ½Ç¼ö¿Í ÇÔÁ¤µéÀ» Ä£ÀýÇÏ°Ô ¾Ë·ÁÁֹǷΠÁ»´õ ³ôÀº ´Ü°è·Î ¼ºÀåÇÏ°í ½Í¾î ÇÏ´Â °³¹ßÀڵ鿡°Ô ¸Å¿ì ÀûÇÕÇÑ Ã¥ÀÌ´Ù.
¡Ú ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë ¡Ú
¡á µ¿½Ã¼º
¡á ºÐ¼ö °è»ê
¡á Ŭ·°...
´õº¸±â
¡Ú ¿ä¾à ¡Ú
´õ¿í »ç¿ëÇÏ±â ÆíÇØÁö°í ±â´Éµµ ´õ ¸¹¾ÆÁø C++11 Ç¥Áذú »õ Ç¥ÁØ¿¡ µû¶ó ¹Ù²ï ¶óÀ̺귯¸®¸¦ dzºÎÇÑ ¿¹Á¦¿Í ÇÔ²² ¼Ò°³ÇÑ´Ù. C++11¿¡ µµÀÔµÈ ¶÷´Ù¸¦ Ç¥ÁØ ÅÛÇø´ ¶óÀ̺귯¸®¿Í ¾Ë°í¸®Áò¿¡ °áÇÕÇØ »ç¿ëÇØº¸ÀÚ. Á¤¸» ªÀº ÄÚµå·Îµµ °¡µ¶¼ºÀ» ³ôÀÌ°í ¹ö±×´Â ÁÙÀÏ ¼ö ÀÖÀ» °ÍÀÌ´Ù. »Ó¸¸ ¾Æ´Ï¶ó Ç¥ÁØ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ¸ç ½±°Ô °ÞÀ» ¼ö ÀÖ´Â ½Ç¼ö¿Í ÇÔÁ¤µéÀ» Ä£ÀýÇÏ°Ô ¾Ë·ÁÁֹǷΠÁ»´õ ³ôÀº ´Ü°è·Î ¼ºÀåÇÏ°í ½Í¾î ÇÏ´Â °³¹ßÀڵ鿡°Ô ¸Å¿ì ÀûÇÕÇÑ Ã¥ÀÌ´Ù.
¡Ú ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë ¡Ú
¡á µ¿½Ã¼º
¡á ºÐ¼ö °è»ê
¡á Ŭ·°°ú ŸÀ̸Ó
¡á ÅõÇÃ
¡á »õ STL ÄÁÅ×À̳Ê
¡á »õ STL ¾Ë°í¸®Áò
¡á »õ ½º¸¶Æ® Æ÷ÀÎÅÍ
¡á »õ ·ÎÄÉÀÏ ÆÐ½Ë
¡á ³¼ö¿Í È®·ü ºÐÆ÷
¡á µ¥ÀÌÅÍÇü ƯÁú°ú À¯Æ¿¸®Æ¼
¡á Á¤±Ô Ç¥Çö½Ä
¡Ú ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¡Ú
ÀÌ Ã¥Àº ÃʱÞÀÚ¸¦ À§ÇÑ ¾È³»¼À̱⵵ Çϰí C++ Ç¥ÁØ ¶óÀ̺귯¸®¿¡ ´ëÇÑ Ã¼°èÈµÈ Âü°í ¸Å´º¾óÀ̱⵵ ÇÏ´Ù. C++ Ç¥ÁØ ¶óÀ̺귯¸®ÀÇ °³º° ÄÄÆ÷³ÍÆ®¿¡ ´ëÇÑ ¼³¸íÀº ¾î´À Á¤µµ µ¶¸³ÀûÀ̱⠶§¹®¿¡ 2Àå¿¡¼ºÎÅÍ 5Àå±îÁö¸¦ ÀÐ°í ³ ´ÙÀ½¿¡´Â °³º° ÄÄÆ÷³ÍÆ®¸¦ ¼³¸íÇÏ´Â ³ª¸ÓÁö ºÎºÐµéÀ» µ¶ÀÚ°¡ ¿øÇÏ´Â ¾î¶² ¼ø¼·Î Àо »ó°ü¾ø´Ù. ÇÏÁö¸¸ 6Àå¿¡¼ºÎÅÍ 11Àå±îÁö´Â °°Àº ÄÄÆ÷³ÍÆ®¸¦ ¼³¸íÇÑ´Ù´Â Á¡À» ±â¾ïÇÏÀÚ. STL¿¡ °üÇÑ ´Ù¸¥ ÀåµéÀ» ÀÌÇØÇÏ·Á¸é STL¿¡ ´ëÇÑ ¼Ò°³°¡ ³ª¿Í ÀÖ´Â 6Àå¿¡¼ºÎÅÍ ½ÃÀÛÇØ¾ß ÇÒ °ÍÀÌ´Ù.
¸¸¾à ¿©·¯ºÐÀÌ C++ ÇÁ·Î±×·¡¸ÓÀ̰í, ¶óÀ̺귯¸®ÀÇ °³³ä°ú ¸ðµç ºÎºÐ¿¡ ´ëÇØ ÀϹÝÀûÀ¸·Î ¾Ë°í ½Í´Ù¸é, ±×³É óÀ½ºÎÅÍ ³¡±îÁö Àо µÉ °ÍÀÌ´Ù. ÇÏÁö¸¸ Âü°í ºÎºÐÀº ³Ñ¾î°¡µµ ÁÁ´Ù. C++ Ç¥ÁØ ¶óÀ̺귯¸®ÀÇ Æ¯Á¤ ÄÄÆ÷³ÍÆ®¸¦ »ç¿ëÇÏ°í ½Í´Ù¸é ¡®Ã£¾Æº¸±â¡¯¸¦ »ç¿ëÇØ¼ ã´Â °Ô °¡Àå ÁÁ´Ù.
¡Ú ÀÌ Ã¥ÀÇ ±¸¼º ¡Ú
óÀ½ ´Ù¼¸ °³ Àå¿¡¼´Â ÀÌ Ã¥°ú C++ Ç¥ÁØ ¶óÀ̺귯¸®¿¡ ´ëÇØ Àü¹ÝÀûÀ¸·Î ¼Ò°³ÇÑ´Ù.
1Àå, °³¿ä: ÀÌ Ã¥ÀÇ ¸ñÀûÀ» ¼Ò°³ÇÏ°í ³»¿ëÀ» ¼³¸íÇÑ´Ù.
2Àå, C++¿Í Ç¥ÁØ ¶óÀ̺귯¸® ¼Ò°³: C++ Ç¥ÁØ ¶óÀ̺귯¸®ÀÇ ¿ª»ç¿Í Ç¥ÁØÈÀÇ ³»¿ë¿¡ ´ëÇØ °£´ÜÈ÷ »ìÆìº¸°í º¹Àâµµ(complexity)¶ó´Â °³³äÀ» »ìÆìº»´Ù.
3Àå, »õ ¾ð¾î Ư¼º: ÀÌ Ã¥À» Àаí C++ Ç¥ÁØ ¶óÀ̺귯¸®¸¦ »ç¿ëÇϱâ À§ÇØ ¾Ë¾Æ¾ß ÇÏ´Â »õ ¾ð¾î Ư¼ºµéÀ» °³°ýÀûÀ¸·Î »ìÆìº»´Ù.
4Àå, ÀÏ¹Ý °³³ä: 4ÀåÀº ¸ðµç ÄÄÆ÷³ÍÆ®¸¦ Ȱ¿ëÇϱâ À§Çؼ ¾Ë¾Æ¾ß ÇÏ´Â ±âº»ÀûÀÎ ¶óÀ̺귯¸® °³³äÀ» ¼³¸íÇÑ´Ù. ƯÈ÷ ³×ÀÓ½ºÆäÀ̽º std, Çì´õ ÆÄÀÏÀÇ Çü½Ä, ¿À·ù¿Í ¿¹¿Ü 󸮿¡ ´ëÇÑ ÀϹÝÀûÀÎ Áö¿ø¿¡ ´ëÇØ¼ ¼Ò°³ÇÑ´Ù.
5Àå, À¯Æ¿¸®Æ¼: ¶óÀ̺귯¸®ÀÇ »ç¿ëÀÚ¿Í ¶óÀ̺귯¸® ÀÚü¸¦ À§ÇØ Á¦°øµÇ´Â ÀÛÀº À¯Æ¿¸®Æ¼µéÀ» ¼Ò°³ÇÑ´Ù. ƯÈ÷ 5ÀåÀº pair<>¿Í tuple<> Ŭ·¡½º, ½º¸¶Æ® Æ÷ÀÎÅÍ(smart pointer), ¼ýÀÚÀÇ ÇѰè(numeric limit), µ¥ÀÌÅÍÇü ƯÁú(type trait)°ú µ¥ÀÌÅÍÇü À¯Æ¿¸®Æ¼, º¸Á¶ ÇÔ¼ö, ratio<> Ŭ·¡½º, Ŭ·°(clock)°ú ŸÀ̸Ó(timer), C++¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â C ÇÔ¼öµéÀ» ¾Ë¾Æº»´Ù.
6Àå¿¡¼ºÎÅÍ 11Àå±îÁö´Â STLÀÇ ¸ðµç °ÍÀ» ¾Ë¾Æº»´Ù.
6Àå, Ç¥ÁØ ÅÛÇø´ ¶óÀ̺귯¸®: µ¥ÀÌÅÍ ¸ðÀ½À» ó¸®ÇÏ´Â µ¥ ¾²ÀÌ´Â ÄÁÅ×ÀÌ³Ê Å¬·¡½º¿Í ¾Ë°í¸®ÁòÀ» Á¦°øÇÏ´Â STLÀÇ °³³ä¿¡ ´ëÇØ »ó¼¼È÷ ¼³¸íÇÑ´Ù. 6Àå¿¡¼´Â ´Ü°èº°·Î °³³äÀ» ¼³¸íÇϰí, STL°ú °ü·ÃµÈ ¹®Á¦¿Í Ưº°ÇÑ ÇÁ·Î±×·¡¹Ö ±â¹ý¿¡ ´ëÇØ¼ ¾Ë¾Æº»´Ù. ¶ÇÇÑ °¢ ºÎºÐÀÇ ¿ªÇÒ¿¡ ´ëÇØ¼µµ »ìÆìº¼ »ý°¢ÀÌ´Ù.
7Àå, STL ÄÁÅ×À̳Ê: STLÀÌ Á¦°øÇÏ´Â ÄÁÅ×ÀÌ³Ê Å¬·¡½ºÀÇ °³³ä°ú Á¦°øÇÏ´Â ±â´É¿¡ ´ëÇØ¼ ¾Ë¾Æº»´Ù. 7Àå¿¡¼´Â ¹è¿, º¤ÅÍ(vector), µ¥Å©(deque), ¸®½ºÆ®(list), ¼ø¹æÇâ ¸®½ºÆ®(forward list), ÁýÇÕ(set), ¸Ê(map), ºñÁ¤·Ä ÄÁÅ×À̳Ê(unordered container)°¡ °¡Áö´Â °øÅë ±â´É, Â÷ÀÌÁ¡, Ưº°ÇÑ È°¿ëÁ¡, ´ÜÁ¡À» ¼³¸íÇϰí ÀüÇüÀûÀÎ ¿¹¸¦ »ìÆìº»´Ù.
8Àå, STL ÄÁÅ×ÀÌ³Ê ¼¼ºÎ»çÇ×: ¸ðµç ÄÁÅ×ÀÌ³Ê ¸â¹ö(µ¥ÀÌÅÍÇü°ú ¿¬»ê)¸¦ ¼Õ½±°Ô ã¾Æº¼ ¼ö ÀÖ´Â ÇüÅ·Π¼³¸íÇÑ´Ù.
9Àå, STL ¹Ýº¹ÀÚ: ´Ù¾çÇÑ ¹Ýº¹ÀÚ Ä«Å×°í¸®, ¹Ýº¹ÀÚ¸¦ À§ÇÑ º¸Á¶ ÇÔ¼ö»Ó ¾Æ´Ï¶ó ½ºÆ®¸²(stream) ¹Ýº¹ÀÚ, ¿ª¹æÇ⠹ݺ¹ÀÚ, »ðÀÔ ¹Ýº¹ÀÚ¿Í À̵¿ ¹Ýº¹ÀÚ¿Í °°Àº ´Ù¾çÇÑ ¹Ýº¹ÀÚ ¾î´ðÅÍ(adapter)¸¦ ¾Ë¾Æº»´Ù.
10Àå, STL ÇÔ¼ö °´Ã¼¿Í ¶÷´Ù(lambda) »ç¿ë: STLÀÇ ÇÔ¼ö °´Ã¼ Ŭ·¡½º(¶÷´Ù Æ÷ÇÔ)¸¦ ¼³¸íÇϰí À̵éÀ» »ç¿ëÇØ ÄÁÅ×ÀÌ³Ê¿Í ¾Ë°í¸®ÁòÀÇ µ¿ÀÛÀ» Á¤ÀÇÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº»´Ù.
11Àå, STL ¾Ë°í¸®Áò: STLÀÌ Á¦°øÇÏ´Â ¾Ë°í¸®ÁòÀ» ¼³¸íÇÑ´Ù. ¾Ë°í¸®ÁòÀ» °£´ÜÇÏ°Ô ¼³¸íÇÏ°í ºñ±³ÇÑ ÈÄ, °¢ ¾Ë°í¸®ÁòÀ» ´Ù¾çÇÑ ¿¹Á¦ ÇÁ·Î±×·¥À» ÅëÇØ »ó¼¼È÷ ¼³¸íÇß´Ù.
12Àå¿¡¼ºÎÅÍ 14Àå¿¡¼´Â ¡®´Ü¼øÇÑ¡¯ °³º° Ç¥ÁØ Å¬·¡½º¸¦ ¾Ë¾Æº»´Ù.
12Àå, Ưº°ÇÑ ÄÁÅ×À̳Ê: Å¥(queue)¿Í ½ºÅÃ(stack)À» À§ÇÑ ÄÁÅ×ÀÌ³Ê ¾î´ðÅÍ¿Í ÀÓÀÇÀÇ ºñÆ®(bit)¿Í Ç÷¡±×(flag)µéÀ» ÀúÀåÇÏ´Â ºñÆ®Çʵå(bitfield)¸¦ °ü¸®Çϱâ À§ÇÑ ºñÆ®¼Â(bitset) Ŭ·¡½º¸¦ ¾Ë¾Æº»´Ù.
13Àå, ¹®ÀÚ¿: C++ Ç¥ÁØ ¶óÀ̺귯¸®°¡ Á¦°øÇÏ´Â ¿©·¯ °¡Áö ¹®ÀÚ¿Çü(³î¶ø°Ôµµ ¹®ÀÚ¿ÇüÀº Çϳª°¡ ¾Æ´Ï´Ù)À» »ìÆìº»´Ù. Ç¥ÁØÀº ´Ù¾çÇÑ µ¥ÀÌÅÍÇüÀÇ ¹®ÀÚ¸¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ±âº»ÀûÀÎ µ¥ÀÌÅÍÇü ¡®Á¾·ù¡¯ÀÇ ÀϺημ ¹®ÀÚ¿À» Á¦°øÇÑ´Ù.
14Àå, Á¤±Ô Ç¥Çö½Ä: Á¤±Ô Ç¥Çö½ÄÀ» ó¸®Çϱâ À§ÇÑ ÀÎÅÍÆäÀ̽º(interface)¸¦ ¼³¸íÇÑ´Ù. Á¤±Ô Ç¥Çö½ÄÀº ¹®ÀÚ¿Í ÇÏÀ§ ¹®ÀÚ¿À» ã°í ġȯÇÏ´Â µ¥ »ç¿ëµÈ´Ù.
15, 16Àå¿¡¼´Â I/O¿Í ±¹Á¦È¶ó´Â ±ä¹ÐÈ÷ ¿¬°üµÈ ÁÖÁ¦¿¡ ´ëÇØ ´Ù·é´Ù.
15Àå, ½ºÆ®¸² Ŭ·¡½º¸¦ »ç¿ëÇÑ ÀÔ·Â/Ãâ·Â: IOStream ¶óÀ̺귯¸®¶ó°í ¾Ë·ÁÁø ÄÄÆ÷³ÍÆ®¸¦ ´Ù·é´Ù. 15ÀåÀº ÀϹÝÀûÀ¸·Î Àß ¾Ë·ÁÁöÁö´Â ¾Ê¾ÒÁö¸¸ ÇÁ·Î±×·¡¸Óµé¿¡°Ô´Â Áß¿äÇÒ ¼ö ÀÖ´Â ¼¼ºÎ»çÇ×, À̸¦Å×¸é Æ¯º°ÇÑ I/O ä³Î(channel)À» Á¤ÀÇÇϰí ÅëÇÕÇÏ´Â ¹æ¹ýµµ ÇÔ²² ¼³¸íÇÑ´Ù.
16Àå, ±¹Á¦È: ÇÁ·Î±×·¥À» ±¹Á¦ÈÇϱâ À§ÇÑ °³³ä°ú °ü·Ã Ŭ·¡½º¸¦ ´Ù·é´Ù. ¿©±â¼´Â ´Ù¾çÇÑ ¹®ÀÚ ÁýÇÕÀ» ó¸®ÇÏ´Â ¹ý°ú ºÎµ¿ ¼Ò¼öÁ¡ ¼ýÀÚ¿Í ³¯Â¥¸¦ ´Ù¾çÇÑ ÇüÅ·ΠÁ¦°øÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº»´Ù.
±× ÈÄ¿¡´Â ¼ýÀÚ, µ¿½Ã¼º°ú ÇÒ´çÀÚ¸¦ ¾Ë¾Æº»´Ù.
17Àå, ¼ýÀÚ: C++ Ç¥ÁØ ¶óÀ̺귯¸®ÀÇ ¼ýÀÚ ÄÄÆ÷³ÍÆ®¸¦ ¼³¸íÇÑ´Ù. ƯÈ÷ ³¼ö¿Í È®·ü ºÐÆ÷¸¦ Á¦°øÇϱâ À§ÇÑ Å¬·¡½º, º¹¼Ò¼ö¸¦ À§ÇÑ µ¥ÀÌÅÍÇü°ú ¸î¸î C ¼öÇÐ ÇÔ¼öµéÀ» ¾Ë¾Æº»´Ù.
18Àå, µ¿½Ã¼º: µ¿½Ã¼º°ú ¸ÖƼ½º·¹µå¸¦ Áö¿øÇϱâ À§ÇØ C++ Ç¥ÁØ ¶óÀ̺귯¸®¿¡¼ Á¦°øÇϴ Ư¼ºÀ» ¼³¸íÇÑ´Ù.
19Àå, ÇÒ´çÀÚ: C++ Ç¥ÁØ ¶óÀ̺귯¸®³»ÀÇ ¿©·¯ °¡Áö ¸Þ¸ð¸® ¸ðµ¨¿¡ ´ëÇÑ °³³äÀ» ¼³¸íÇÑ´Ù.
´Ý±â