40-1-´Ù.¿¬»êÀÚ

º¤ÅÍ¿¡´Â »ó½ÄÀûÀ¸·Î ÇÊ¿äÇÏ´Ù°í »ý°¢µÇ´Â ´ëºÎºÐÀÇ ¿¬»êÀÚµéÀÌ Á¤ÀǵǾî ÀÖ¾î °£´ÜÇÑ µ¿ÀÛÀº ¿¬»êÀÚ¸¸À¸·Îµµ ó¸®ÇÒ ¼ö ÀÖ´Ù. C++ÀÇ ¿¬»êÀÚ ¿À¹ö·Îµù ±â´ÉÀ» ¾ÆÁÖ ÀûÀýÈ÷ Àß È°¿ëÇϰí Àִµ¥ º¤ÅͻӸ¸ ¾Æ´Ï¶ó STL ÄÁÅ×À̳ʵéÀº ¸ðµÎ ºñ½ÁÇÑ ¹æ½ÄÀ¸·Î ¿¬»êÀÚ¸¦ ¿À¹ö·ÎµùÇÑ´Ù.

´ëÀÔ

º¤Åͳ¢¸® ´ëÀÔÇÒ ¶§´Â °£´ÜÇÏ°Ô = ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¸é µÈ´Ù. ´ëÀÔÀ» ¹Þ´Â Áº¯ º¤ÅÍ´Â ¿ìº¯ º¤ÅÍÀÇ Å©±â¸¸Å­ ÀÚµ¿À¸·Î Å©±â°¡ ´Ã¾î³¯ °ÍÀÌ¸ç ¿ìº¯ÀÇ ¸ðµç ¿ä¼Ò°¡ Áº¯À¸·Î ´ëÀԵȴÙ. º¤ÅÍÀÇ ¿ä¼Ò°¡ °´Ã¼ÀÎ °æ¿ì °³º° °´Ã¼ÀÇ ´ëÀÔ ¿¬»êÀÚ¸¦ È£ÃâÇÏ¿© ±íÀº º¹»ç¸¦ ÇϹǷΠ¿ä¼Òµéµµ ¿ÏÀüÇÑ »çº»À¸·Î »ý¼ºµÉ °ÍÀÌ´Ù. ¿ìº¯ÀÇ ¸ðµç ¿ä¼Ò°¡ Áº¯À¸·Î º¹»çµÇ¾î µÎ º¤ÅͰ¡ ¿ÏÀüÈ÷ °°¾ÆÁö¸ç ¸Þ¸ð¸® °ü¸®, ¿ä¼Ò °³¼ö °ü¸® µîÀÇ ¸ðµç 󸮴 ´ëÀÔ ¿¬»êÀÚ ³»ºÎ¿¡¼­ ¾Ë¾Æ¼­ ó¸®ÇÒ °ÍÀÌ´Ù. Áº¯ º¤ÅÍ¿¡ ¿ø·¡ µé¾î ÀÖ´ø °ªÀº ´ç¿¬È÷ ÆÄ±«µÈ´Ù.

´ëÀÔ ¿¬»êÀÚ´Â µÎ º¤Å͸¦ ¿ÏÀüÈ÷ ¶È°°ÀÌ ¸¸µå´Âµ¥ ¸¸¾à ÀϺΠ±¸°£¸¸ º¹»çÇÏ°í ½Í´Ù¸é assign ¸â¹ö ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù. Ç×»ó ÀÌ·± ½ÄÀε¥ ¿¬»êÀÚ´Â Àüü¿¡ ´ëÇÑ Ã³¸®¸¦ Çϸç ÀϺκп¡ ´ëÇÑ Ã³¸®´Â º°µµÀÇ ¸â¹ö ÇÔ¼ö°¡ ÁغñµÇ¾î ÀÖ´Ù. ¿¬»êÀÚ´Â Àü´Þ¹ÞÀ» ¼ö ÀÖ´Â ÇÇ¿¬»êÀÚ ¼ö°¡ Á¦ÇѵǾî ÀÖ¾î ºÎºÐ¿¡ ´ëÇÑ Ã³¸®¸¦ ÇÒ¸¸Å­ ÃæºÐÇÑ Á¤º¸¸¦ Á¦°ø¹ÞÀ» ¼ö ¾ø±â ¶§¹®ÀÌ´Ù. assignÀº ´ÙÀ½ µÎ °³ÀÇ ¹öÀüÀÌ Á¦°øµÈ´Ù.

 

void assign(size_type count, const Type& val);

void assign(InIt first, InIt last);

 

ù ¹øÂ° ¹öÀüÀº val°ª count°³¸¦ ¹Ýº¹ÀûÀ¸·Î º¹»çÇÑ´Ù. º¤Å͸¦ ƯÁ¤°ªÀ¸·Î °¡µæ ä¿ì°í ½ÍÀ» ¶§ ÀÌ ¹öÀüÀ» »ç¿ëÇÑ´Ù. µÎ ¹øÂ° ¹öÀüÀº ¹Ýº¹ÀÚ ±¸°£À» ¹Þ¾ÆµéÀ̴µ¥ ´Ù¸¥ ÄÁÅ×À̳ÊÀÇ ÀϺΠ¿ä¼Ò¸¦ º¤ÅÍ¿¡ ´ëÀÔÇÑ´Ù. ÅÛÇø´ ÇÔ¼ö·Î Á¤ÀǵǾî ÀÖÀ¸¹Ç·Î ÀÔ·Â ¹Ýº¹ÀÚ Á¶°Ç¸¸ ¸¸Á·ÇÏ¸é º¤ÅͰ¡ ¾Æ´Ñ ÄÁÅ×À̳ÊÀÇ ±¸°£µµ ´ëÀÔÇÒ ¼ö ÀÖ´Ù.

 

¿¹ Á¦ : vectorassign

#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()

{

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

     vector<int> vi(&ari[0],&ari[5]);

 

     vector<int>vi2;

     vi2=vi;

     dump("vi2",vi2);

 

     vector<int>vi3;

     vi3.assign(vi.begin()+1,vi.end()-1);

     dump("vi3",vi3);

}

 

¼¼ °³ÀÇ º¤Å͸¦ »ý¼ºÇϴµ¥ vi¸¦ vi2¿¡ ´ëÀÔÇßÀ¸¹Ç·Î vi2´Â viÀÇ ¸ðµç ¿ä¼Ò¿¡ ´ëÇÑ »çº»À» °¡Áø´Ù. vi3´Â vi2ÀÇ ¿ä¼Ò Áß ÀüÈÄ Çϳª¾¿À» »©°í °¡¿îµ¥ ¼¼ °³¸¸À» ´ëÀÔ¹Þ¾Ò´Ù. ½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù.

 

vi2         ==> 1 2 3 4 5

vi3         ==> 2 3 4

±³È¯

swap¸â¹ö ÇÔ¼ö´Â µÎ º¤ÅÍÀÇ ¿ä¼ÒµéÀ» Åë°·Î ±³È¯ÇÑ´Ù. ±³È¯ÇϰíÀÚÇÏ´Â ´ë»ó º¤Å͸¦ Àμö·Î Àü´ÞÇϱ⸸ Çϸé È£ÃâÇÑ º¤ÅÍ¿Í Àμö·Î Àü´ÞµÈ º¤ÅͰ¡ ±³È¯µÈ´Ù.

 

void swap(vector& Right);

 

¸â¹ö ÇÔ¼ö ¿Ü¿¡ ¸ðµç ÄÁÅ×À̳ʿ¡ ´ëÇØ ¾µ ¼ö ÀÖ´Â ÀϹÝÀûÀÎ swap ¾Ë°í¸®Áòµµ ÀÖ´Ù. º¤Åͳ¢¸® ±³È¯ÇÏ°í ½ÍÀ» ¶§´Â ´ÙÀ½ µÎ °¡Áö ¹æ¹ý Áß Çϳª¸¦ »ç¿ëÇÑ´Ù.

 

v1.swap(v2);     // ¸â¹ö ÇÔ¼ö

swap(v1,v2);     // ¾Ë°í¸®Áò ÇÔ¼ö

 

ÀϹÝÀûÀÎ ¾Ë°í¸®ÁòÀÌ Àִµ¥µµ ºÒ±¸ÇÏ°í º¤ÅͰ¡ Ưº°È÷ swap ¸â¹ö ÇÔ¼ö¸¦ Á¦°øÇÏ´Â ÀÌÀ¯´Â ÀϹÝÀûÀÎ ¾Ë°í¸®ÁòÀÌ ¿ä¼Ò¸¦ Á÷Á¢ ±³È¯Çϵµ·Ï µÇ¾î Àִµ¥ ºñÇØ º¤Åͳ¢¸® ±³È¯ÇÒ ¶§´Â ´Ü¼øÈ÷ Æ÷ÀÎÅ͸¸ ±³È¯Çϸé ÈξÀ ´õ ºü¸£±â ¶§¹®ÀÌ´Ù. º¤ÅͰ¡ ¿ä¼ÒµéÀ» ¸â¹ö·Î °¡Áö°í ÀÖ´Â °ÍÀÌ ¾Æ´Ï¶ó ³»ºÎÀûÀ¸·Î´Â ¿ä¼ÒÀÇ ½ÃÀÛ Æ÷ÀÎÅ͸¸À» °¡Áö¹Ç·Î ÀÌ Æ÷ÀÎÅÍ¿Í Å©±â Á¤º¸ µî¸¸ ±³È¯ÇÏ¸é µÈ´Ù.

±×·¯³ª ½ÇÁ¦·Î µÎ °³ÀÇ swap ÇÔ¼ö´Â ¿ÏÀüÈ÷ µ¿µîÇѵ¥ ¿Ö³ÄÇϸé swap ¾Ë°í¸®Áò ÇÔ¼ö°¡ º¤ÅÍ¿¡ ´ëÇØ ºÎºÐ Ư¼öÈ­µÇ¾î Àֱ⠶§¹®ÀÌ´Ù. swapÀº µÎ °³ÀÇ ÄÁÅ×À̳ʸ¦ ±³È¯Ç쵂 º¤Åͳª ¸®½ºÆ® µî ´õ ºü¸£°Ô ±³È¯ÇÒ ¼ö ÀÖ´Â ÄÁÅ×À̳ʿ¡ ´ëÇØ¼­´Â ¸â¹ö ÇÔ¼ö ¹öÀüÀ» È£ÃâÇϵµ·Ï µÇ¾î ÀÖ´Ù.

Áï Àü¿ª swap ÇÔ¼ö´Â ´Ü¼øÈ÷ Á߰踸 ÇÒ »ÓÀ̸ç ÀϰüµÈ ¹æ¹ýÀ¸·Î ÄÁÅ×À̳ʸ¦ ±³È¯ÇÏ´Â ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù. ±×·¡¼­ ¾î¶² ÇÔ¼ö¸¦ »ç¿ëÇϳª »ç½Ç»ó ¼ÓµµÂ÷´Â ¾ø´Â ÆíÀÌ´Ù. °£´ÜÇÏ°Ô ¿¹Á¦¸¦ ¸¸µé¾î º¸ÀÚ.

 

¿¹ Á¦ : vectorswap

#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()

{

     const char str[]="abcdefghijklmnopqrstuvwxyz";

     vector<char> vc1(&str[0],&str[5]);

     vector<char> vc2(&str[5],&str[19]);

     dump("before vc1",vc1);

     dump("before vc2",vc2);

     vc1.swap(vc2); 

     dump("after vc1",vc1);

     dump("after vc2",vc2);

}

 

µÎ °³ÀÇ ¹®ÀÚ º¤Å͸¦ ¸¸µé¾î ³õ°í swap ¸â¹ö ÇÔ¼ö·Î ±³È¯Çß´Ù.

 

before vc1  ==> a b c d e

before vc2  ==> f g h i j k l m n o p q r s

after vc1   ==> f g h i j k l m n o p q r s

after vc2   ==> a b c d e

 

¾îÂ÷ÇÇ Å©±â Á¤º¸±îÁö °°ÀÌ ±³È¯µÇ¹Ç·Î µÎ º¤ÅÍÀÇ Å©±â°¡ ´Þ¶óµµ »ó°ü¾ø´Ù. ´ÙÀ½°ú °°ÀÌ ±³È¯Çصµ È¿°ú´Â ¸¶Âù°¡ÁöÀÌ´Ù.

 

vc2.swap(vc1); 

swap(vc1,vc2);

 

´©°¡ ±³È¯ÀÇ ÁÖü°¡ µÇ´À³Ä¸¸ ´Ù¸¦ »ÓÀε¥ ±³È¯À̶õ ¾îÂ÷ÇÇ ¾çÂÊÀ» ¸ðµÎ º¯°æÇÏ´Â ¿¬»êÀ̹ǷΠ¶È°°Àº ÀǹÌÀÌ´Ù. Àü¿ª swap ¾Ë°í¸®Áò ÇÔ¼ö·Î º¤Å͸¦ ±³È¯Çصµ °á±¹Àº swap ¸â¹ö ÇÔ¼ö°¡ ±³È¯À» ó¸®ÇÒ °ÍÀÌ´Ù. ±×·¯³ª µÎ º¤ÅÍÀÇ Å¸ÀÔÀÌ ´Þ¶ó¼­´Â ¾ÈµÇ´Âµ¥ vector<int>¿Í vector<char>´Â ¼­·Î ´ëÀ﵃ ¼ö ¾ø´Â ´ë»óÀ̹ǷΠ±³È¯µµ ºÒ°¡´ÉÇÏ´Ù.

ºñ±³

º¤Åͳ¢¸® ºñ±³ÇÒ ¶§´Â ==, != »óµî ¿¬»êÀÚ¿Í <, >, <=, >= ºñ±³ ¿¬»êÀÚ¸¦ »ç¿ëÇÑ´Ù. »óµî ºñ±³´Â ¿ä¼ÒÀÇ °³¼ö¿Í ¸ðµç ¿ä¼ÒÀÇ °ªÀÌ ÀÏÄ¡ÇÒ ¶§ °°Àº °ÍÀ¸·Î ÆÇ´ÜÇÑ´Ù. º¤ÅͰ¡ »ý¼ºµÇ¾î ÀÖ´Â ¸Þ¸ð¸® À§Ä¡³ª Ãß°¡·Î ÇÒ´çµÇ¾î ÀÖ´Â ¿©À¯ºÐÀº º¤ÅÍÀÇ ½ÇÁ¦ ³»¿ëÀÌ ¾Æ´Ï¹Ç·Î »óµî ºñ±³ÀÇ ´ë»óÀÌ ¾Æ´Ï´Ù. µé¾î ÀÖ´Â ³»¿ë¸¸ °°´Ù¸é °°Àº º¤ÅÍ·Î Ãë±ÞµÈ´Ù.

´ë¼Ò¸¦ ºñ±³ÇÒ ¶§´Â ´ëÀÀµÇ´Â °¢ ¿ä¼ÒµéÀ» ÀÏ´ëÀÏ·Î ºñ±³ÇÏ´Ù°¡ ÃÖÃÊ·Î ´Ù¸¥ ¿ä¼Ò°¡ ¹ß°ßµÇ¾úÀ» ¶§ µÎ ¿ä¼ÒÀÇ ´ë¼Ò¸¦ ºñ±³ÇÑ °á°ú¸¦ ¸®ÅÏÇÑ´Ù. ¸¸¾à ÇÑÂÊ º¤ÅÍÀÇ ±æÀ̰¡ ´õ ª¾Æ ¸ÕÀú ³¡À» ¸¸³µ´Ù¸é ¾ÆÁ÷ ³¡³ªÁö ¾ÊÀº º¤ÅͰ¡ ´õ Å« °ÍÀ¸·Î ÆÇº°ÇÑ´Ù. ÀÌ·± ½ÄÀ¸·Î ºñ±³ÇÏ´Â °ÍÀ» »çÀü½Ä ºñ±³¶ó°í Çϴµ¥ »ó½Ä°úµµ ÀÏÄ¡ÇÑ´Ù.

 

¿¹ Á¦ : vectorcompare

#include <iostream>

#include <vector>

using namespace std;

 

void main()

{

     const char *str="0123456789";

     vector<char> vc1(&str[0],&str[10]);

     vector<char> vc2;

     vector<char> vc3;

 

     vc2=vc1;

     puts(vc1==vc2 ? "°°´Ù":"´Ù¸£´Ù");

     puts(vc1==vc3 ? "°°´Ù":"´Ù¸£´Ù");

     vc2.pop_back();

     puts(vc1 > vc2 ? "Å©´Ù":"Å©Áö ¾Ê´Ù");

}

 

¼¼ °³ÀÇ º¤Å͸¦ »ý¼ºÇØ ³õ°í »óµî ¹× ´ë¼Ò ºñ±³¸¦ Çß´Ù. vc2´Â vc1À» ´ëÀÔ¹Þ¾ÒÀ¸¹Ç·Î ´ç¿¬È÷ °°À» °ÍÀ̰í vc3´Â ºó º¤ÅÍÀ̹ǷΠvc2¿Í´Â ´Ù¸£´Ù. vc2¿¡¼­ ³¡ ¿ä¼Ò¸¦ »©°í vc1°ú ºñ±³ÇÏ¸é ±ä º¤ÅͰ¡ ´õ Å« °ÍÀ¸·Î ÆÇ´ÜÇÑ´Ù. Áß°£ÀÇ ¿ä¼Ò Çϳª°¡ ´Ù¸£¸é ÃÖÃÊ·Î ´Þ¶óÁø ¿ä¼Ò¸¦ ±âÁØÀ¸·Î ´ë¼Ò¸¦ ÆÇ´ÜÇÒ °ÍÀÌ´Ù.

 

°°´Ù

´Ù¸£´Ù

Å©´Ù

 

¿¬»êÀÚ´Â º¤ÅÍ Àüü¸¦ ºñ±³Çϸç ÀϺΠ±¸°£¸¸ ºñ±³ÇÏ°í ½ÍÀ» ¶§´Â ´ÙÀ½ Àå¿¡¼­ ¹è¿ï equal, mismatch ¾Ë°í¸®Áò ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù. ÀÌ ÇÔ¼öµéÀ» »ç¿ëÇÏ¸é º¤ÅͻӸ¸ ¾Æ´Ï¶ó ÀÓÀÇÀÇ ÄÁÅ×ÀÌ³Ê ±¸°£³¢¸®µµ ºñ±³ÇÒ ¼ö ÀÖ´Ù.

¿ä¼Ò ÂüÁ¶

º¤ÅÍÀÇ ÀÓÀÇ ¿ä¼Ò¸¦ ÀÐÀ» ¶§´Â [ ] ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¸ç °ýÈ£¾È¿¡ ºÎÈ£¾ø´Â Á¤¼ö·Î ÷ÀÚ¸¦ ÁöÁ¤ÇÑ´Ù. º¤ÅÍ´Â ÀÓÀÇ Á¢±ÙÀÌ °¡´ÉÇϹǷΠ÷ÀÚ ¹øÈ£·Î ¿ä¼Ò¸¦ ºü¸£°Ô ÂüÁ¶ÇÒ ¼ö ÀÖ´Ù. vi º¤ÅÍÀÇ Å©±â°¡ 1000ÀÏ ¶§ 900¹øÂ° ¿ä¼Ò¸¦ ÀÐ°í ½Í´Ù¸é vi[900]À» ÂüÁ¶ÇÏ¸é µÈ´Ù. À̶§ ¸®ÅϵǴ °ªÀº ·¹ÆÛ·±½ºÀ̹ǷΠvi[900]=1234; ó·³ ´ëÀÔ½ÄÀÇ Áº¯¿¡ ³õ¾Æ ¿ä¼Ò°ªÀ» º¯°æÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù. º¤ÅͰ¡ ¹è¿­À» Èä³»³»¹Ç·Î ¸¶Ä¡ ¹è¿­ÀÎ °Íó·³ »ç¿ëÇÏ¸é µÈ´Ù.

[ ] ¿¬»êÀÚ¿Í ºñ½ÁÇÏ°Ô µ¿ÀÛÇÏ´Â at ÇÔ¼öµµ Á¤ÀǵǾî Àִµ¥ Àμö·Î ÷ÀÚ¸¦ ÁöÁ¤ÇÑ´Ù. [ ] ¿¬»êÀڴ ÷ÀÚ°¡ ¹«Á¶°Ç À¯È¿ÇÏ´Ù°í °¡Á¤ÇÏ´Â ¹Ý¸é at ÇÔ¼ö´Â º¤ÅÍÀÇ Å©±â¸¦ Á¡°ËÇÏ¿© ¹«È¿ÇÑ Ã·ÀÚÀÏ °æ¿ì out_of_range ¿¹¿Ü¸¦ ¹ß»ý½ÃŲ´Ù´Â Á¡ÀÌ ´Ù¸£´Ù. ±×·¡¼­ ¹è¿­ ¹üÀ§¸¦ ¹þ¾î³ª´Â ½Ç¼ö¸¦ ¸·À» ¼ö ÀÖ´Ù. [ ] ¿¬»êÀÚ¿Í at ÇÔ¼ö ¸ðµÎ »ó¼ö, ºñ»ó¼ö ¹öÀüÀÌ °¢°¢ Á¤ÀǵǾî ÀÖ´Ù.

 

const_reference at(size_type pos) const;

reference at(size_type pos);

 

at ÇÔ¼ö·Î ¿¹¿Ü¸¦ ó¸®ÇÏ´Â °£´ÜÇÑ ¿¹Á¦¸¦ ¸¸µé¾î º¸ÀÚ.

 

¿¹ Á¦ : indexat

#include <iostream>

#include <vector>

#include <algorithm>

using namespace std;

 

void main()

{

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

     vector<int> vi(&ari[0],&ari[5]);

 

     try {

          //cout << vi[10] << endl;

          cout << vi.at(10) << endl;

     }

     catch(out_of_range e) {

          cout << "º¤ÅÍÀÇ ¹üÀ§¸¦ ¹þ¾î³µ½À´Ï´Ù." << endl;

     }

}

 

Å©±â 5ÀÇ º¤ÅÍ vi¸¦ ¼±¾ðÇϰí vi[10]°ú vi.at[10]À¸·Î ¹üÀ§ ¹Ù±ùÀÇ 10¹øÂ° ¿ä¼Ò¸¦ ÀÐ¾î º¸¾Ò´Ù. vi[10]Àº ¿¹¿Ü¸¦ ÀÏÀ¸Å°Áö ¾Ê°í ¹«Á¶°Ç 10 ¹øÂ° °ªÀ» ÀÐÀ¸¹Ç·Î ´Ù¿îµÇ°Å³ª ¾Æ´Ï¸é ¿îÀÌ ÁÁ´Ù ÇÏ´õ¶óµµ ¾²·¹±â°ªÀ» µ¹·ÁÁÙ °ÍÀÌ´Ù. ±×·¯³ª at ÇÔ¼ö´Â ¿¹¿Ü¸¦ ÀÏÀ¸Å°¹Ç·Î try ºí·Ï¾È¿¡ ³Ö¾îµÎ¸é ¾ÈÀüÇÏ°Ô ¿¹¿Ü¸¦ ó¸®ÇÒ ¼ö ÀÖ´Ù.

at ÇÔ¼ö°¡ ¿¹¿Ü¸¦ ó¸®ÇϹǷΠ¾ÈÀü¼ºÀÌ Á» ´õ ³ôÁö¸¸ ¾×¼¼½ºÇÒ ¶§¸¶´Ù ÷ÀÚ ¹üÀ§¸¦ ÀÏÀÏÀÌ Á¡°ËÇØ¾ß ÇϹǷΠ¼Óµµ´Â ´À¸®´Ù. ¶ÇÇÑ ¿¹¿Ü 󸮸¦ À§ÇØ ¹Ýµå½Ã try, catch ºí·ÏÀ» ±¸¼ºÇØ¾ß ÇϹǷΠ¹ø°Å·Ó±âµµ ÇÏ´Ù. ÀÏÁ¤ÇÑ ¹üÀ§¿¡ ´ëÇØ¼­¸¸ ·çÇÁ¸¦ µ¹ ¶§´Â ±»ÀÌ at ÇÔ¼ö¸¦ ¾µ ÇÊ¿ä¾øÀÌ [ ] ¿¬»êÀÚ¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ´õ È¿À²ÀûÀÌ´Ù. »ç¿ëÀÚ°¡ ÷ÀÚ ¹øÈ£¸¦ Á÷Á¢ ÀÔ·ÂÇѴٰųª ÇÒ ¶§¸¸ at ÇÔ¼ö¿Í ¿¹¿Ü 󸮸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù. º¤ÅÍ´Â ¹«¾ùº¸´Ù ºü¸¥ ¿ä¼Ò ÂüÁ¶°¡ ÀåÁ¡Àε¥ ÀÐÀ» ¶§¸¶´Ù ¹üÀ§¸¦ Á¡°ËÇϸé ÀÌ ÀåÁ¡ÀÌ »ç¶óÁú °ÍÀÌ´Ù.

ÀÌ ¿Ü¿¡ º¤ÅÍÀÇ ¿ä¼Ò¸¦ Àд ¹æ¹ý¿¡´Â ¹Ýº¹ÀÚ¿Í * ¿¬»êÀÚ¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ ÀÖ´Ù. ´Ü, ¹Ýº¹ÀÚ´Â °¡¸®Å°°í ÀÖ´Â À§Ä¡¸¸ ÀÐÀ» ¼ö ÀÖÀ¸¹Ç·Î ÀаíÀÚ ÇÏ´Â °÷À¸·Î ¸ÕÀú À̵¿ÇØ¾ß ÇÑ´Ù. º¤ÅÍÀÇ ¹Ýº¹ÀÚ´Â +n ¿¬»êÀ» Áö¿øÇϹǷΠ*(vi.begin()+n) ¿¬»ê¹®À¸·Î n¹øÂ° ¿ä¼Ò¸¦ ÀÐÀ» ¼ö ÀÖÀ¸¸ç vi.end¸¦ ±âÁØÀ¸·Î »¬¼ÀÀ» ÇÏ¸é ³¡¿¡¼­ºÎÅÍ n¹øÂ° ¿ä¼Ò¸¦ ÀÐÀ» ¼öµµ ÀÖ´Ù.