39-2-³ª.ÀÔ·Â ¹× Ãâ·Â ¹Ýº¹ÀÚ

ÀÔ·Â ¹Ýº¹ÀÚ(Input Iterator)´Â °¡Àå ±âº»ÀûÀÎ ±â´É¸¸ Á¦°øÇÏ´Â ¹Ýº¹ÀÚÀÌ´Ù. ¹Ýº¹ÀÚÀ̹ǷΠÄÁÅ×À̳ÊÀÇ ÇÑ À§Ä¡¸¦ °¡¸®Å°´Â °ÍÀº ´ç¿¬ÇÏ°í ¹Ýº¹ÀÚ°¡ °¡¸®Å°´Â À§Ä¡ÀÇ ¿ä¼Ò¸¦ * ¿¬»êÀÚ·Î ÀÐÀ» ¼öµµ ÀÖ´Ù. Àд °Í¸¸ °¡´ÉÇϹǷΠ* ¿¬»êÀÚ¸¦ »ç¿ëÇÏ´õ¶óµµ ¿ä¼ÒÀÇ °ªÀ» º¯°æÇÏ´Â °ÍÀº ºÒ°¡´ÉÇÏ´Ù. ÀÔ·Â ¹Ýº¹ÀÚ¿¡ * ¿¬»êÀÚ¸¦ Àû¿ëÇÑ °á°ú´Â ¿ìº¯°ªÀÏ »ÓÀ̸ç Áº¯°ªÀº ¾Æ´Ï´Ù. Áï, *ÀÔ·Â ¹Ýº¹ÀÚ Ç¥Çö½ÄÀº Àбâ Àü¿ëÀÌ´Ù.

 

a=*it;       // °¡´É

*it=a;       // ºÒ°¡´É

 

ÀüÀ§Çü, ÈÄÀ§ÇüÀÇ ++ ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© ´ÙÀ½ ¿ä¼Ò·Î À̵¿ÇÏ´Â ±â´Éµµ °¡Áö°í ÀÖÀ¸¸ç °°Àº ŸÀÔÀÇ ¹Ýº¹ÀÚ¿Í »óµî ºñ±³µµ °¡´ÉÇÏ´Ù. °Ë»öÀ» ÇÏ´Â find ¾Ë°í¸®ÁòÀÌ ¿ä±¸ÇÏ´Â ¿¬»êÀÚ°¡ ¹Ù·Î ÀÔ·Â ¹Ýº¹ÀÚ(InIt)Àε¥ °Ë»öÀ̶õ ÁöÁ¤ ±¸°£À» ¼øÈ¸Çϸ鼭 ¿øÇÏ´Â °ªÀ» °¡Áø ¿ä¼Ò¸¦ ã¾Æ³»´Â °ÍÀÌ´Ù. ÀÌ µ¿ÀÛÀ» Çϱâ À§ÇØ ÇÊ¿äÇÑ ±â´ÉÀº °ªÀ» Àбâ À§ÇÑ * ¿¬»êÀÚ, ´ÙÀ½ ¿ä¼Ò·Î À̵¿ÇÏ´Â ++ ¿¬»êÀÚ ±×¸®°í ³¡³¾ ½ÃÁ¡À» °áÁ¤Çϱâ À§ÇÑ != ¿¬»êÀÚ¹Û¿¡ ¾ø´Ù. find ÇÔ¼öÀÇ ±¸Çö Äڵ带 º¸¸é °ú¿¬ ÀÌ Á¤µµ ±â´É¹Û¿¡ »ç¿ëµÇÁö ¾Ê´Â´Ù´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.

°Ë»öÀ̶õ ´Ü¼øÈ÷ °ªÀ» Àб⸸ ÇÏ´Â µ¿ÀÛÀ̹ǷΠ¿ä¼ÒÀÇ °ªÀ» º¯°æÇÏ´Â ±â´ÉÀº ÇÊ¿äÄ¡ ¾ÊÀ¸¸ç ¼øÂ÷ °Ë»öÀ» ÇϹǷΠ¾ÕÀ¸·Î ÀüÁøÇÏ´Â ±â´É¸¸ ÀÖÀ¸¸é µÈ´Ù. ÀÌ·± ¿ä±¸ Á¶°ÇÀ» ¸¸Á·ÇÏ´Â ¹Ýº¹ÀÚ¸¦ ÀÔ·Â ¹Ýº¹ÀÚ¶ó°í ÇÑ´Ù. ¾²±â ±â´ÉÀº ¿ä±¸µÇÁö ¾Ê´Âµ¥ ÀÌ´Â ¾²±â ±â´ÉÀÌ ¾ø¾î¾ß ÇÑ´Ù´Â ¾ê±â¿Í´Â ´Ù¸£´Ù. ¾²´Â ±â´ÉÀÌ À־ »ó°ü¾øÁö¸¸ ÇʼöÀûÀ¸·Î ¿ä±¸µÇÁö´Â ¾Ê´Â´Ù´Â ¶æÀÌ´Ù.

Ãâ·Â ¹Ýº¹ÀÚ´Â * ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© ¿ä¼ÒÀÇ ³»¿ëÀ» º¯°æÇÒ ¼ö ÀÖ´Â ¹Ýº¹ÀÚÀÌ´Ù. ¾²±â°¡ °¡´ÉÇÏ´Ù¸é º¸Åë Àб⵵ °¡´ÉÇÏÁö¸¸ Àд ±â´ÉÀº ¾ø¾îµµ »ó°ü¾ø´Ù. ¾²±â¸¸ °¡´ÉÇϸé Ãâ·Â ¹Ýº¹ÀÚ¶ó°í ÇÒ ¼ö ÀÖÀ¸¸ç Àб⠱â´ÉÀÌ Çʼö´Â ¾Æ´Ï´Ù. ´ÙÀ½ ¿ä¼Ò·Î À̵¿ÇÏ´Â ++¿¬»êÀÚµµ Áö¿øÇØ¾ß ÇÑ´Ù. ±×·¯³ª Ãâ·ÂÀº ÀԷ°ú´Â ´Þ¸® ¹«Á¶°ÇÀûÀ̾ ¹üÀ§ Á¡°ËÀ» À§ÇÑ ==, != ¿¬»êÀÚ´Â Çʼö°¡ ¾Æ´Ï´Ù. Áï, ÀüÁøÇϸ鼭 ±â·Ï °¡´ÉÇÏ´Ù´Â Á¶°Ç¸¸ ¸¸Á·Çϸé Ãâ·Â ¹Ýº¹ÀÚ¶ó°í ÇÒ ¼ö ÀÖ´Ù.

 

*it=a;       // °¡´É

a=*it;       // ²À ÇÊ¿äÄ¡ ¾ÊÀ½.

 

¹Ýº¹ÀÚ ±¸°£³¢¸® º¹»çÇÏ´Â copy ¾Ë°í¸®Áò¿¡ ÀÔ·Â, Ãâ·Â ¹Ýº¹ÀÚ°¡ µ¿½Ã¿¡ ³ªÅ¸³­´Ù. ÀÌ ÇÔ¼öÀÇ ±¸Çö ÄÚµå´Â ´ÙÀ½°ú °°À» °ÍÀÌ´Ù. ¹°·Ð ½ÇÁ¦ ÄÚµå´Â ÄÄÆÄÀÏ·¯¸¶´Ù ´Ù¸£´Ù.

 

OutIt copy(InIt first, InIt last, OutIt result)

{

     while (first != last) {

          *result++=*first++;

     }

     return result;

}

 

ÀÌ ÇÔ¼ö´Â first ~ last ±¸°£À» result¿¡ º¹»çÇÑ´Ù. first, last´Â º¹»çÇÒ ¿øº»À̹ǷΠ¿À·ÎÁö Àб⸸ ÇÏ¸é µÇ°í ¾µ ÇÊ¿ä´Â ¾øÀ¸¹Ç·Î InIt ŸÀÔÀÌ¸ç º¹»ç ¸ñÀûÁöÀÎ result´Â ¿À·ÎÁö Ãâ·Â¸¸ ÇÏ¸ç ´Ù½Ã ÀÐÀ» ÇÊ¿ä´Â ¾øÀ¸¹Ç·Î OutIt ŸÀÔÀÌ´Ù. °Ô´Ù°¡ result´Â ¹«Á¶°Ç ¾²±â °¡´ÉÇÑ °ÍÀ¸·Î °¡Á¤ÇϹǷΠ¹üÀ§¸¦ Á¡°ËÇÒ Çʿ䰡 ¾øÀ¸¸ç µû¶ó¼­ Ãâ·Â ¹Ýº¹ÀÚ´Â ºñ±³ ¿¬»êÀ» Á¦°øÇÒ Çʿ䵵 ¾ø´Ù. ¹Ý¸é ÀÔ·Â ¹Ýº¹ÀÚ´Â ³¡ ÆÇº°À» À§ÇØ != ¿¬»êÀ» Á¦°øÇØ¾ß ÇÑ´Ù.

µÎ À¯ÇüÀÇ ¹Ýº¹ÀÚ´Â ÀÔÃâ·Â ½ºÆ®¸²¿¡¸¸ Àû¿ëµÈ´Ù. STL ÄÁÅ×À̳ʵéÀº ¸ðµÎ Àбâ, ¾²±â°¡ µ¿½Ã¿¡ °¡´ÉÇϹǷΠÀÌ µÎ À¯Çüº¸´Ù ´õ ³ôÀº ·¹º§ÀÇ ¹Ýº¹ÀÚ¸¦ Áö¿øÇÑ´Ù. ÀÔÃâ·Â ½ºÆ®¸²µµ ¹®ÀÚµéÀÇ ÁýÇÕÀ̹ǷΠÀÏÁ¾ÀÇ ÄÁÅ×À̳ʶó°í ÇÒ ¼ö Àִµ¥ Űº¸µå°¡ Á¦°øÇÏ´Â ¹Ýº¹ÀÚ´Â ÀԷ¸¸ °¡´ÉÇÏ´Ù. Űº¸µå·Î µé¾î¿À´Â ¹®ÀÚ°ªÀº ÀÐÀ» ¼ö¸¸ ÀÖÀ» »ÓÀÌÁö ¾²±â´Â °¡´ÉÇÏÁöµµ ¾Ê°í ÇÊ¿äÇÏÁöµµ ¾Ê´Ù.

¾²±â¸¸ °¡´ÉÇϰí Àбâ´Â ¾ÈµÇ´Â ¾²±â Àü¿ëÀÇ ÄÁÅ×À̳ʰ¡ ¾ó¸¥ ¶°¿À¸£Áö ¾Ê°ÚÁö¸¸ ÀÌ·± ÄÁÅ×À̳ʰ¡ ½ÇÁ¦·Î Á¸ÀçÇÑ´Ù. ¹®ÀÚÀÇ ÄÁÅ×À̳ÊÀÎ ÄÜ¼Ö È­¸éÀº ¾²±â Àü¿ëÀÇ ÀåºñÀ̸ç ÄܼÖÀÌ Á¦°øÇÏ´Â ½ºÆ®¸² Ãâ·Â ¹Ýº¹ÀÚ°¡ ¹Ù·Î ÀÌ·± ºÎ·ùÀÌ´Ù. ´õ È®½ÇÇÑ ¿¹¸¦ µéÀÚ¸é Ç¥ÁØ Ãâ·ÂÀÌ ÇÁ¸°ÅÍ·Î ÀçÁöÇâµÇ¾î ÀÖÀ» ¶§ÀÇ ÇÁ¸°Å͸¦ »ý°¢ÇØ º¸¸é µÈ´Ù. ÇÁ¸°ÅÍ·Î ¹º°¡¸¦ º¸³¾ ¼ö´Â ÀÖÁö¸¸ ÀμâµÈ ±ÛÀÚ°¡ ¹«¾ùÀÎÁö ÀÐÀ» ¼ö ÀÖ´Â ¹æ¹ýÀº ÀüÇô ¾ø´Ù. È­¸éÀ̳ª ÇÁ¸°ÅÍ´Â ¿ÏÀüÇÑ ¾²±â Àü¿ë ÀåºñÀÌ¸ç µû¶ó¼­ ÀÌ ÀåºñÀÇ ¹Ýº¹ÀÚ´Â Ãâ·Â¿ëÀ̱⸸ ÇÏ¸é µÈ´Ù.

ÀÔ·Â, Ãâ·Â ¹Ýº¹ÀÚÀÇ ÀÏÁ¾ÀÎ ÀÔÃâ·Â ½ºÆ®¸² ¹Ýº¹ÀÚ´Â Äֿܼ¡ ¿¬°áµÈ ¹Ýº¹ÀÚÀÌ´Ù. Åë»ó Ç¥ÁØ ÀÔÃâ·Â °´Ã¼ÀÎ cin, cout¿¡ ´ëÇØ »ç¿ëÇÏÁö¸¸ ÀÓÀÇÀÇ ½ºÆ®¸² °´Ã¼¿¡ ´ëÇÑ ¹Ýº¹Àڷεµ »ç¿ëÇÒ ¼ö ÀÖ´Ù. i(o)stream_iterator Ŭ·¡½º·Î Á¤ÀǵǾî ÀÖÀ¸¸ç ÀÌ ¹Ýº¹ÀÚ¸¦ »ç¿ëÇϸé Ç¥ÁØ ÀÔ·Â(Űº¸µå)À¸·Î ÀԷ¹ÞÀº ³»¿ëÀ» ¼øÈ¸Çϸ鼭 Àо ¼ö ÀÖ°í Ç¥ÁØ Ãâ·Â(¸ð´ÏÅÍ)À¸·Î ¹®ÀÚ¸¦ Ãâ·ÂÇÒ ¼öµµ ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦´Â ¸®½ºÆ®ÀÇ ¿ä¼ÒµéÀ» È­¸éÀ¸·Î Ãâ·ÂÇÑ´Ù.

 

¿¹ Á¦ : ostream_iterator

#include <iostream>

#include <list>

using namespace std;

 

void main()

{

     int ari[]={1,2,3,4,5};

     list<int> li(&ari[0],&ari[5]);

 

     ostream_iterator<int> oit(cout,",");

     copy(li.begin(),li.end(),oit);

}

 

ÄÜ¼Ö È­¸éÀ¸·ÎÀÇ Ãâ·ÂÀ» À§ÇØ ostream_iteratorÇüÀÇ °´Ã¼ oit¸¦ ¼±¾ðÇϴµ¥ ÀÌ ÅÛÇø´ÀÇ Àμö·Î´Â Ãâ·ÂÇÒ Å¸ÀÔÀ» ÁöÁ¤ÇØ¾ß ÇÑ´Ù. Ãâ·Â ´ë»óÀÎ ¸®½ºÆ®ÀÇ ¿ä¼Ò°¡ Á¤¼öÇüÀ̹ǷΠint ŸÀÔ¿¡ ´ëÇÑ Ãâ·Â ½ºÆ®¸² Ŭ·¡½º·Î ±¸Ã¼È­Çß´Ù. »ý¼ºÀÚÀÇ Àμö·Î´Â Ãâ·Â ½ºÆ®¸² °´Ã¼¿Í ¸Å ¿ä¼Ò »çÀÌ¿¡ Ãâ·ÂµÉ ±¸ºÐÀÚ¸¦ Àü´ÞÇÑ´Ù. ¿¹Á¦ÀÇ oit´Â Á¤¼öÇüÀ» cout, Áï Ç¥ÁØ Ãâ·Â ÀåÄ¡·Î Ãâ·ÂÇ쵂 ¸Å Á¤¼ö°ª¸¶´Ù ½°Ç¥¸¦ ±¸ºÐÀÚ·Î »ðÀÔÇÑ´Ù.

¸®½ºÆ®ÀÇ ³»¿ëÀ» È­¸é¿¡ Ãâ·ÂÇÒ ¶§´Â ¸®½ºÆ®ÀÇ ¹Ýº¹ÀÚ ±¸°£°ú Ãâ·Â ½ºÆ®¸² ¹Ýº¹ÀÚ¸¦ copy ÇÔ¼ö·Î Àü´ÞÇÏ¿© ¹Ýº¹ÀÚ³¢¸® º¹»çÇϵµ·Ï Çß´Ù. ¸®½ºÆ®ÀÇ ³»¿ëÀ» È­¸é¿¡ º¹»çÇÑ´Ù´Â °ÍÀº °ð È­¸é¿¡ Ãâ·ÂÇÑ´Ù´Â ¾ê±â´Ù. copy ÇÔ¼ö´Â ¸®½ºÆ®ÀÇ ¹Ýº¹ÀÚ ±¸°£ ¿ä¼ÒµéÀ» ¼ø¼­´ë·Î Àоî Ãâ·Â ½ºÆ®¸² ¹Ýº¹ÀÚ oitÀÇ À§Ä¡¿¡ º¹»çÇÑ´Ù. ÀÌ ÄÚµå´Â ¾Æ¸¶ *oit=*first·Î µÇ¾î ÀÖÀ»ÅÙµ¥ Ãâ·Â ½ºÆ®¸² ¹Ýº¹ÀÚ¿¡ ´ëÇÑ = ¿¬»êÀÌ cout << ¿¬»êÀ¸·Î Áߺ¹ Á¤ÀǵǾî ÀÖ¾î È­¸éÀ¸·Î Ãâ·ÂµÇ´Â °ÍÀÌ´Ù. ½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù.

 

1,2,3,4,5,

 

¸®½ºÆ®ÀÇ Á¤¼ö ¿ä¼ÒµéÀÌ ¸ðµÎ Ãâ·ÂµÇ¾úÀ¸¸ç ¼ýÀÚµé »çÀÌ¿¡´Â ±¸ºÐÀÚÀÎ ½°Ç¥°¡ Çϳª¾¿ »ðÀԵǾú´Ù. oit »ý¼ºÀÚÀÇ µÎ ¹øÂ° Àμö¸¦ "\n"À¸·Î º¯°æÇÏ¸é ¸Å ¿ä¼Ò¸¦ Ãâ·ÂÇÑ ÈÄ °³ÇàµÉ °ÍÀÌ´Ù. ÄÁÅ×À̳ÊÀÇ ¹Ýº¹ÀÚ ±¸°£°ú Ãâ·Â ½ºÆ®¸² ¹Ýº¹ÀÚ·Î copy ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ¹æ¹ýÀº ÄÁÅ×À̳ʸ¦ È­¸é¿¡ ´ýÇÁÇÏ´Â °¡Àå Æí¸®ÇÑ ¹æ¹ýÀÌ¸ç ´ÙÀ½ ÇÑ ÁÙ·Î ÁÙÀÏ ¼öµµ ÀÖ´Ù.

 

copy(li.begin(),li.end(),ostream_iterator<int>(cout,","));

 

¸®½ºÆ®ÀÇ Àüü ¿ä¼Ò¸¦ cout Ãâ·Â ½ºÆ®¸² ¹Ýº¹ÀÚ·Î º¹»çÇ쵂 °¢ ¿ä¼Ò »çÀÌ¿¡ ½°Ç¥¸¦ Áý¾î ³Ö¾î¶ó´Â ¶æÀÌ´Ù. ±¸¹®ÀÌ Á¶±Ý º¹ÀâÇϱâ´Â ÇÏÁö¸¸ ¾ó¸¶³ª ª°í °£°áÇѰ¡? ÀÌ°É C ÄÚµå·Î Ç®¾î ¾²·Á¸é Áö¿ª Æ÷ÀÎÅ͸¦ ¼±¾ðÇÏ¿© ¼±µÎ¸¦ °¡¸®Å°µµ·Ï ÃʱâÈ­ÇÏ°í ·çÇÁ µ¹¸®¸ç ¸Å ¿ä¼Ò¸¦ Àоî coutÀ¸·Î Ãâ·ÂÇϱ⸦ ¹Ýº¹ÇØ¾ß ÇÏ°í °Ô´Ù°¡ ¿ä¼Ò »çÀÌ¿¡ ½±Ç¥±îÁö Ãâ·ÂÇØ¾ß ÇϹǷΠÁ·È÷ 10¿©ÁÙÀº ´õ µÉ °ÍÀÌ´Ù.

ÀÔ·Â ½ºÆ®¸² ¹Ýº¹ÀÚ¸¦ »ç¿ëÇϸé Űº¸µå·ÎºÎÅÍ Æ¯Á¤ ŸÀÔÀÇ ÀڷḦ ¿¬¼ÓÀûÀ¸·Î ÀÐ¾î ¿øÇÏ´Â ÀÛ¾÷À» ÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦´Â ÀÔ·Â ½ºÆ®¸² ¹Ýº¹ÀÚ·Î Á¤¼ö¸¦ ÀÔ·Â¹Þ¾Æ º¤ÅÍ¿¡ ÀúÀåÇÑ´Ù. »ç¿ëÀڷκÎÅÍ ÀÏ·ÃÀÇ °ªÀ» ÀԷ¹ÞÀ» ¶§ ÀÌ ¹æ¹ýÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

 

¿¹ Á¦ : istream_iterator

#include <iostream>

#include <vector>

#include <algorithm>

using namespace std;

 

template<typename C>

void dump(const char *desc, C c)

{

     cout.width(12);

     cout << left << desc << "==> ";

     copy(c.begin(),c.end(),ostream_iterator<typename C::value_type>(cout," "));

     cout << endl;

}

 

void main()

{

     vector<int> vi(16);

     istream_iterator<int> iit(cin);

     copy(iit,istream_iterator<int>(),vi.begin());

     dump("ÀÔ·Â ¿Ï·á ÈÄ",vi);

}

 

istream_iterator´Â ÅÛÇø´ Àμö·Î ÀԷ¹ÞÀ» ŸÀÔÀ» ÁöÁ¤ÇÏ¸ç »ý¼ºÀڷδ ÀÔ·Â ½ºÆ®¸² °´Ã¼¸¦ ÁöÁ¤ÇÑ´Ù. ¿¹Á¦ÀÇ iit´Â Á¤¼öÇüÀ» cinÀ¸·ÎºÎÅÍ ÀԷ¹޴ °´Ã¼·Î ¼±¾ðµÇ¾ú´Ù. istream_iteratorÀÇ µðÆúÆ® »ý¼ºÀÚ´Â ½ºÆ®¸² ³¡À» ³ªÅ¸³»´Â ¹Ýº¹ÀÚ¸¦ »ý¼ºÇϴµ¥ ÀÌ ¹Ýº¹Àڴ Űº¸µå ÀÔ·Â Á¾·á¸¦ ÀǹÌÇÑ´Ù.

copy ÇÔ¼ö´Â iit¿¡ Á¤ÀǵǾî ÀÖ´Â >> ¿¬»êÀÚ¸¦ È£ÃâÇÏ¿© Űº¸µå(cin)·ÎºÎÅÍ Á¤¼ö°ªÀ» ÀԷ¹ÞÀ¸¸ç ÀÌ °ªÀ» º¤ÅÍÀÇ ½ÃÀÛ À§Ä¡¿¡ º¹»çÇϱ⸦ ½ºÆ®¸² ³¡¿¡ À̸¦ ¶§±îÁö ¹Ýº¹ÇÒ °ÍÀÌ´Ù. ¿¹Á¦¸¦ ½ÇÇàÇÑ ÈÄ Á¤¼ö°ªµéÀ» °ø¹éÀ̳ª °³ÇàÀ¸·Î ±¸ºÐÇÏ¿© ÀÔ·ÂÇϸé ÀÌ Á¤¼öµéÀÌ º¤ÅÍ¿¡ Â÷·Ê´ë·Î º¹»çµÈ´Ù. ÀÔ·ÂÀ» ¸¶Ä¥ ¶§´Â ½ºÆ®¸²ÀÇ ³¡À» ÀǹÌÇÏ´Â Ctrl+Z¸¦ ÀÔ·ÂÇÑ´Ù. ÇÑ ÁÙ·Î ÁÙÀÌ¸é ´ÙÀ½Ã³·³ ¾µ ¼öµµ ÀÖ´Ù.

 

copy(istream_iterator<int>(cin),istream_iterator<int>(),vi.begin());

 

ÀÌ ¿¹Á¦´Â dump¶ó´Â ÅÛÇø´ ÇÔ¼ö¸¦ óÀ½À¸·Î Á¤ÀÇÇϰí Àִµ¥ ÀÌ ÇÔ¼ö´Â ÀÓÀÇÀÇ ÄÁÅ×À̳ʸ¦ Àü´Þ¹Þ¾Æ ÄÁÅ×À̳ÊÀÇ ¸ðµç ¿ä¼Ò¸¦ °ø¹éÀ¸·Î ±¸ºÐÇÏ¿© È­¸é¿¡ Ãâ·ÂÇÑ´Ù. ÄÁÅ×ÀÌ³Ê ³»¿ë¾Õ¿¡ °£´ÜÇÑ ¹®ÀÚ¿­À» Çϳª Ãâ·ÂÇÏ¸ç ´Ù Ãâ·ÂÇÑ ÈÄ °³Çà±îÁö ó¸®ÇϹǷΠ¿¹Á¦ È®ÀοëÀ¸·Î ¾ÆÁÖ ÈǸ¢ÇÏ´Ù. È­¸é Ãâ·ÂÀ» À§ÇØ Ãâ·Â ½ºÆ®¸² ¹Ýº¹ÀÚ¸¦ »ç¿ëÇϰí Àִµ¥ ¹Ýº¹ÀÚ·Î Á÷Á¢ Ãâ·ÂÇÒ ¼öµµ ÀÖ´Ù.

 

for (typename C::iterator it=c.begin();it!=c.end();it++) cout << *it << ' ';

 

¾ÕÀ¸·Î ÄÁÅ×ÀÌ³Ê¿Í ¾Ë°í¸®Áò ½Ç½ÀÀ» À§ÇØ ÄÁÅ×À̳ʸ¦ º¯°æÇϰí È®ÀÎÇÒ ÀÏÀÌ ¾ÆÁÖ ¸¹À¸¹Ç·Î ÀÌÈĺÎÅÍ ÄÁÅ×À̳ÊÀÇ ³»¿ëÀ» Ãâ·ÂÇÒ ¶§´Â ÀÌ ÇÔ¼ö¸¦ Ȱ¿ëÇϱâ·Î ÇÑ´Ù. ÀÓÀÇ Å¸ÀÔÀÇ ÀÓÀÇ ÄÁÅ×À̳ʸ¦ Áö¿øÇÒ ¼ö ÀÖµµ·Ï ¾ÆÁÖ ÀϹÝÀûÀ¸·Î ÀÛ¼ºÇßÀ¸¹Ç·Î µð¹ö±ë¿ëÀ¸·Îµµ ÈǸ¢ÇÏ°Ô È°¿ëÇÒ¸¸ÇÏ´Ù.

ÀÔÃâ·Â ½ºÆ®¸² ¹Ýº¹ÀÚ¿¡´Â ÀÌ ¿Ü¿¡µµ Á» ´õ Àú¼öÁØÀÇ i(o)strembuf_iterator Ŭ·¡½ºµµ Àִµ¥ ¹öÆÛ¸¦ Á÷Á¢ Á¶ÀÛÇÏ¸ç ¹®ÀÚ ´ÜÀ§·Î ÀÔÃâ·ÂÀ» ¼öÇàÇϹǷΠ¼º´ÉÀÌ ÈξÀ ´õ ÁÁ´Ù. ÀÌ Å¬·¡½ºµéµµ ³ª¸§´ë·Î ½Ç¿ë¼ºÀÌ ÀÖ±â´Â ÇÏÁö¸¸ ¿©±â±îÁö¸¸ ¾Ë¾Æ µÎ¸é ÃæºÐÇÏ´Ù. ¾îÂ÷ÇÇ ÄÜ¼Ö È¯°æ¿¡¼­ ÇÁ·Î±×·¡¹ÖÇÏ´Â ½Ã´ë´Â Áö³µÀ¸¸ç iostreamÀº ¾ÆÁ÷±îÁöµµ Ç¥ÁØ´ë·Î ±¸ÇöµÇÁö ¾ÊÀº ÄÄÆÄÀÏ·¯°¡ ¸¹¾Æ À̽ļº¿¡µµ ºÒ¸®ÇϹǷΠ¾Ö½á ¿¬±¸Çغ¼ °¡Ä¡°¡ ¶³¾îÁø´Ù.