º¯°æ ¾Ë°í¸®ÁòÀº ÀÐ±â ¾Ë°í¸®Áò°ú´Â ´Þ¸® ÄÁÅ×À̳ÊÀÇ ¿ä¼Ò¸¦ ¹Ù²Ü ¼ö ÀÖ´Â ¾Ë°í¸®ÁòÀÌ´Ù. ±×·¯³ª ¿ä¼ÒÀÇ °ª¸¸ º¯°æÇÒ ¼ö ÀÖÀ» »ÓÀÌÁö ÄÁÅ×ÀÌ³Ê ÀÚü¿¡ ´ëÇØ¼´Â ¾î¶°ÇÑ Á¶ÀÛµµ ÇÏÁö ¸øÇÑ´Ù´Â Á¡À» ÁÖÀÇÇÏÀÚ. ¿ä¼Ò¸¦ Á¦°ÅÇѴٰųª »õ·Î¿î ¿ä¼Ò¸¦ »ðÀÔÇѴٰųª ÄÁÅ×À̳ÊÀÇ Å©±â¸¦ º¯°æÇÏ´Â °Íµµ ºÒ°¡´ÉÇÏ´Ù. ¿Ö³ÄÇϸé STLÀÇ ¾Ë°í¸®ÁòµéÀº Ư¼öÇÑ ÄÁÅ×À̳ʿ¡ ¼Ò¼ÓµÇ¾î ÀÖ´Â °ÍÀÌ ¾Æ´Ï¶ó ÀÓÀÇÀÇ ÄÁÅ×ÀÌ³Ê¿Í ÇÔ²² »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÀϹÝȵǾî Àֱ⠶§¹®ÀÌ´Ù.
¾Ë°í¸®ÁòÀÌ ÄÁÅ×À̳ʿ¡ Á¢±ÙÇÏ´Â À¯ÀÏÇÑ ¹æ¹ýÀº ¹Ýº¹ÀÚ¸¦ ÅëÇÏ´Â °Í »ÓÀÌ¸ç ¹Ýº¹ÀÚ´Â ÄÁÅ×À̳ÊÀÇ ¿ä¼Ò¸¦ ¾×¼¼½ºÇÏ´Â ÀϹÝÈµÈ ¹æ¹ýÀ» Á¦°øÇÒ »ÓÀÌÁö ÄÁÅ×ÀÌ³Ê ÀÚü¸¦ ¾×¼¼½ºÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. ¾Ë°í¸®ÁòÀÌ ÀϹݼºÀ» ȹµæÇÒ ¼ö ÀÖ´Â ÀÌÀ¯´Â ¹Ýº¹ÀÚ¸¦ ÅëÇØ¼¸¸ ÄÁÅ×À̳ÊÀÇ ¿ä¼Ò¸¦ ¾×¼¼½ºÇϹǷΠÄÁÅ×À̳ÊÀÇ ±¸Á¶¸¦ ¸ô¶óµµ ¾à¼ÓµÈ ¹æ¹ý(ÁÖ·Î ¿¬»êÀÚ)¸¸À¸·Îµµ ÇÏ°í ½ÍÀº µ¿ÀÛÀ» ´Ù ÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù.
¾Ë°í¸®ÁòÀº ÀÚ½ÅÀÌ ¾×¼¼½ºÇÏ´Â ÄÁÅ×À̳ʰ¡ ¾î¶² ±¸Á¶¸¦ °¡Áö°í ÀÖ´ÂÁö »ó°üÇÏÁö ¾ÊÀ¸¸ç ³»ºÎÀûÀÎ ±¸Á¶¿¡ »ó°ü¾øÀÌ ½ÇÇàµÈ´Ù. ½ÉÁö¾î ¾î¶² ÄÁÅ×À̳ʸ¦ Á¶ÀÛÇϰí ÀÖ´Â ÁßÀÎÁöµµ ÀüÇô ¸ð¸¥´Ù. µû¶ó¼ ÄÁÅ×À̳ʿ¡ »õ ¿ä¼Ò¸¦ ¾î¶»°Ô »ðÀÔÇÏ´ÂÁöµµ ¸ð¸£°í, »èÁ¦ÇÏ´Â ¹æ¹ýµµ ¾ËÁö ¸øÇÏ´Â °ÍÀÌ´Ù. ¾Ë°í¸®ÁòÀÌ ÄÁÅ×À̳ʿ¡ ´ëÇØ ÇÒ ¼ö ÀÖ´Â ÀÏÀº ¿ä¼Ò°ªÀ» º¯°æÇϰųª º¹»ç, ±³È¯ÇÏ´Â Á¤µµ¿¡ ºÒ°úÇÏ´Ù. ÄÁÅ×ÀÌ³Ê ÀÚü¿¡ ´ëÇÑ Á¶ÀÛÀº °³º° ÄÁÅ×À̳ÊÀÇ ¸â¹ö ÇÔ¼ö¸¦ ÅëÇØ¼¸¸ ¼öÇàÇÒ ¼ö ÀÖ´Ù.
copy ¾Ë°í¸®ÁòÀº ÁöÁ¤ÇÑ ±¸°£À» º¹»çÇϴµ¥ ÁÖ·Î ÀϺΠ¿ä¼ÒµéÀ» ´Ù¸¥ ÄÁÅ×À̳ʷΠº¹»çÇÏ°í ½ÍÀ» ¶§ »ç¿ëÇÑ´Ù. °°Àº ŸÀÔÀÇ ÄÁÅ×ÀÌ³Ê Àüü¸¦ ¿ÏÀüÈ÷ º¹»çÇÏ·Á¸é copy ÇÔ¼ö¸¦ ¾µ ÇÊ¿ä¾øÀÌ ÄÁÅ×À̳ÊÀÇ = ¿¬»êÀÚ·Î ´ëÀÔÇØ ¹ö¸®¸é µÈ´Ù. º¹»ç ¹æÇâ¿¡ µû¶ó ´ÙÀ½ µÎ °³ÀÇ ÇÔ¼ö°¡ Á¤ÀǵǾî ÀÖ´Ù.
OutIt copy(InIt first, InIt last, OutIt result);
BiIt copy_backward(BiIt first, BiIt last, BiIt result);
copy ÇÔ¼ö´Â first~last »çÀÌÀÇ ¸ðµç ¿ä¼Ò¸¦ result¹Ýº¹ÀÚ À§Ä¡ ÀÌÈÄ¿¡ º¹»çÇÑ´Ù. º¹»ç ¸ñÀûÁöÀÇ ½ÃÀÛ À§Ä¡´Â result ¹Ýº¹ÀÚ Çϳª·Î¸¸ ÁöÁ¤µÇ¸ç ±æÀÌ´Â ¿øº»°ú °°´Ù°í °¡Á¤ÇϹǷΠresultÀÌÈÄ last - first¸¸ÅÀÇ ±â¾ï Àå¼Ò°¡ ¹Ì¸® È®º¸µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. ¹Ýº¹ÀÚ´Â °°Àº ÄÁÅ×À̳ÊÀÇ ´Ù¸¥ ºÎºÐÀÏ ¼öµµ ÀÖÁö¸¸ ´Ù¸¥ ÄÁÅ×À̳ÊÀÇ ¹Ýº¹ÀÚ ±¸°£³¢¸®µµ ¹°·Ð º¹»çÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦´Â µÎ °³ÀÇ ¹®ÀÚ¿³¢¸® º¹»çÇÑ´Ù.
¿¹ Á¦ : copy |
#include <iostream>
#include <algorithm>
using namespace std;
void main()
{
char src[]="1234567890";
char dest[]="abcdefghij";
copy(&src[3],&src[7],&dest[5]);
puts(dest);
}
srcÀÇ 3~7±îÁöÀÇ ±¸°£ÀÌ destÀÇ 5 ÀÌÈÄÀÇ ±¸°£¿¡ º¹»çµÈ´Ù. ¿øº»ÀÇ ±æÀ̰¡ 4À̹ǷΠ¸ñÀûÁöÀÇ ±æÀ̵µ 4ÀÌ´Ù.
½ÇÇà °á°ú´Â abcde4567j°¡ µÉ °ÍÀÌ´Ù. copy ÇÔ¼ö´Â À̸§ÀÌ ÀǹÌÇϵíÀÌ º¹»ç¸¦ ÇÒ »ÓÀÌÁö ¿øº»ÀÇ ¿ä¼Ò¸¦ ¸ñÀûÁö¿¡ »ðÀÔÇÏ´Â °ÍÀÌ ¾Æ´Ï´Ù. µû¶ó¼ result ¹Ýº¹ÀÚ ÀÌÈĺÎÅÍ ¿øº»ÀÇ ±æÀ̸¸Å ¹Ì¸® È®º¸µÇ¾î ÀÖÁö ¾ÊÀ¸¸é °á°ú´Â ¿¹»óÇÒ ¼ö ¾ø´Ù. À§ ¿¹Á¦ÀÇ º¹»ç ¸ñÀûÁö¸¦ dest[9]·Î º¯°æÇÏ¸é ¹è¿ µÚÂÊÀ» µ¤¾î¾²¹Ç·Î ¾Æ¸¶µµ ´Ù¿îµÉ °ÍÀÌ´Ù. ÀÌ·² ¶§ »ðÀÔ ¹Ýº¹ÀÚ¸¦ »ç¿ëÇÏ¸é º¹»ç¿Í µ¿½Ã¿¡ ¿ä¼Ò¸¦ »ðÀÔÇÒ ¼ö ÀÖ´Ù.
¿¹ Á¦ : copy2 |
#include <iostream>
#include <list>
#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()
{
char src[]="1234567890";
list<char> li;
copy(&src[3],&src[7],back_inserter(li));
dump("list",li);
}
li ¸®½ºÆ®´Â ºó »óÅ·Π»ý¼ºµÇ¾úÀ¸¹Ç·Î ±â¾ï Àå¼Ò¸¦ ÀüÇô È®º¸ÇÏÁö ¾Ê°í ÀÖÁö¸¸ back_inserter ¹Ýº¹ÀÚ°¡ ´ëÀÔ µ¿ÀÛÀ» push_back »ðÀÔ µ¿ÀÛÀ¸·Î ÀçÁ¤ÀÇÇϹǷΠº¹»çµÇ´Â Á·Á· ¸®½ºÆ®ÀÇ Å©±â°¡ ´Ã¾î³´Ù. ½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù.
list ==> 4 5 6 7
¸¸¾à copy(&src[3],&src[7],li.begin()); À¸·Î º¹»ç¸¦ ¼öÇàÇϸé ÄÄÆÄÀÏÀº Àß µÇ°ÚÁö¸¸ Çã°¡µÇÁö ¾ÊÀº ¿µ¿ª¿¡ ¾²±â µ¿ÀÛÀ» ¼öÇàÇϹǷΠ´çÀå ´Ù¿îµÇ¾î ¹ö¸± °ÍÀÌ´Ù. ÀÏ¹Ý ¾Ë°í¸®ÁòÀº ÄÁÅ×À̳ʸ¦ º¯°æÇÒ ¼ö ¾øÁö¸¸ »ðÀÔ ¹Ýº¹ÀÚ¸¦ ¾²´Â °æ¿ì¿¡´Â ¿ä¼Ò¸¦ Ãß°¡·Î »ðÀÔÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù. »ðÀÔ ¹Ýº¹ÀÚ´Â ÀÚ½ÅÀÌ Àû¿ëÇÒ ÄÁÅ×À̳ʿ¡ ´ëÇÑ Á¤º¸¸¦ Àü´Þ¹ÞÀ¸¸ç ¾î¶² ½ÄÀ¸·Î »ðÀÔÇØ¾ß ÇÑ´Ù´Â °ÍÀ» ¾Ë±â ¶§¹®ÀÌ´Ù.
°°Àº ÄÁÅ×À̳ʳ¢¸®µµ º¹»çÇÒ ¼ö Àִµ¥ À̶§´Â º¹»ç ¹æÇâ¿¡ ½Å°æÀ» ½á¾ß ÇÑ´Ù. copy´Â first¿¡¼ºÎÅÍ ½ÃÀÛÇØ¼ last·Î À̵¿ÇÏ¸é¼ ÇÑ ¿ä¼Ò¾¿ ¼ø¼´ë·Î º¹»çÇϴµ¥ ¿øº»°ú ¸ñÀû ±¸°£ÀÌ °ãÃÄ ÀÖÀ¸¸é ¿øº»ÀÌ ¾ÕÂÊ º¹»ç¿¡ ÀÇÇØ Àб⵵ Àü¿¡ ÆÄ±«µÇ´Â ¹®Á¦°¡ ÀÖ´Ù. ±×·¡¼ ¿ª¹æÇâÀ¸·Î ÁøÇàÇÏ¸é¼ º¹»çÇÏ´Â copy_backward ÇÔ¼ö°¡ µû·Î ¸¶·ÃµÇ¾î ÀÖ´Â °ÍÀÌ´Ù. ¸®½ºÆ®·Î ÀÌ ¹®Á¦¸¦ Å×½ºÆ®ÇØ º¸ÀÚ.
¿¹ Á¦ : copy_backward |
#include <iostream>
#include <list>
#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 i;
list<int> li,li2;
list<int>::iterator first,last,result,it;
for (i=0;i<10;i++) li.push_back(i);
li2=li;
dump("º¹»çÀü",li);
first=find(li.begin(),li.end(),2);
last=find(li.begin(),li.end(),7);
result=find(li.begin(),li.end(),3);
copy(first,last,result);
dump("copy",li);
first=find(li2.begin(),li2.end(),2);
last=find(li2.begin(),li2.end(),7);
result=find(li2.begin(),li2.end(),8);
copy_backward(first,last,result);
dump("back",li2);
}
0 ~ 9±îÁöÀÇ Á¤¼ö¸¦ ¸®½ºÆ®¿¡ ³Ö¾î ³õ°í 2 ~ 6±îÁöÀÇ ¿ä¼Ò¸¦ 3¹ø À§Ä¡, Áï ÇÑÄ ¿À¸¥ÂÊÀ¸·Î º¹»çÇ쵂 ÇÑ ¹øÀº copy¸¦ ÇÑ ¹øÀº copy_backward¸¦ »ç¿ëÇß´Ù.
º¹»çÀü ==> 0 1 2 3 4 5 6 7 8 9
copy ==> 0 1 2 2 2 2 2 2 8 9
back ==> 0 1 2 2 3 4 5 6 8 9
¿ª¹æÇâÀ¸·Î º¹»çÇÒ ¶§´Â Á¦´ë·Î º¹»çµÇ¾ú´Âµ¥ ¼ø¹æÇâÀ¸·Î º¹»çÇÒ ¶§´Â ¹º°¡ À߸øµÈ º¹»ç¸¦ Çϰí ÀÖ´Ù. ¿Ö ±×·±Áö º¹»ç ¼ø¼¸¦ Àß »ý°¢ÇØ º¸ÀÚ.
¼ø¹æÇâÀ¸·Î º¹»çÇÒ ¶§ first À§Ä¡ÀÇ 2°¡ Á¦ÀÏ ¸ÕÀú 3ÀÇ À§Ä¡·Î º¹»çµÇ´Âµ¥ ¿©±â±îÁö´Â Á¤»óÀûÀÌ´Ù. ±×·¯³ª ´ÙÀ½ À§Ä¡ÀÇ 3À» 4ÀÇ À§Ä¡·Î º¹»çÇÒ ¶§´Â ÀÌ¹Ì 3ÀÌ ¾ÕÂÊ¿¡ 2ÀÇ ÀÇÇØ ÆÄ±«µÇ¾î ¹ö·ÈÀ¸¹Ç·Î 3ÀÌ ¾Æ´Ñ 2°¡ º¹»çµÇ¸ç ÀÌÈÄÀÇ °úÁ¤µµ ¸¶Âù°¡ÁöÀÌ´Ù. ¿øº»ÀÌ º¹»çµÇ±â Àü¿¡ ¸ÕÀú º¯ÇØ ¹ö¸®±â ¶§¹®¿¡ ±¸°£³»ÀÇ ¸ðµç ¿ä¼Ò°¡ 2·Î º¯ÇØ ¹ö¸®´Â °ÍÀÌ´Ù.
¿ª¹æÇâÀ¸·Î º¹»çÇÒ ¶§´Â ¿øº»ÀÌ ¸ÕÀú º¹»çµÇ°í ´Ù¸¥ °ªÀ» ´ëÀÔ¹ÞÀ¸¹Ç·Î ÀÌ·± ¹®Á¦°¡ ¾ø´Ù. 6À» 7 ÀÚ¸®¿¡ ¸ÕÀú ´ëÇÇÇØ ³õ°í 5¸¦ 6ÀÚ¸®¿¡ º¹»çÇϹǷΠ¾ÈÀüÇÏ´Ù. ¿ª¹æÇâ º¹»ç ÇÔ¼ö´Â ¿øÇü¿¡ À־µ ´Ù¼Ò Â÷À̰¡ Àִµ¥ copy ÇÔ¼ö´Â ¼ø¼´ë·Î ÀÐÀ¸¹Ç·Î ÀÔ·Â ¹Ýº¹ÀÚÀ̱⸸ ÇÏ¸é µÇÁö¸¸ copy_backwardÇÔ¼ö´Â ¹Ýº¹ÀÚ°¡ ¹Ý´ë ¹æÇâÀ¸·Î ¿òÁ÷¿©¾ß ÇϹǷΠ¾ç¹æÇ⠹ݺ¹ÀÚ¿©¾ß ÇÑ´Ù.
¶ÇÇÑ result°¡ º¹»ç ¸ñÀûÁöÀÇ ½ÃÀÛÁ¡ÀÌ ¾Æ´Ï¶ó ³¡´ÙÀ½Á¡À̾î¾ß ÇÑ´Ù´Â Á¡µµ ´Ù¸£´Ù. ±¸°£À» ÇÑÄ ¿À¸¥ÂÊÀ¸·Î À̵¿ÇÒ ¶§ ¼ø¹æÇâÀº 2 ~ 6À» 3ÀÇ ÀÚ¸®·Î À̵¿Ç϶ó´Â ½ÄÀ¸·Î Àμö¸¦ Àü´ÞÇÏÁö¸¸ ¿ª¹æÇâÀ¸·Î À̵¿ÇÒ ¶§´Â 2 ~ 6À» 8 ¾ÕÂÊÀ¸·Î À̵¿Ç϶ó´Â ½ÄÀ¸·Î Àμö¸¦ Àü´ÞÇØ¾ß ÇÑ´Ù. À̹ø¿¡´Â ¶È°°Àº ¿¹Á¦¸¦ º¤ÅÍ·Î ÀÛ¼ºÇØ º¸ÀÚ.
¿¹ Á¦ : copy_backward2 |
#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 i;
vector<int> vi,vi2;
for (i=0;i<10;i++) vi.push_back(i);
vi2=vi;
dump("º¹»çÀü",vi);
copy(vi.begin()+2,vi.begin()+7,vi.begin()+3);
dump("copy",vi);
copy_backward(vi2.begin()+2,vi2.begin()+7,vi2.begin()+8);
dump("back",vi2);
}
¶È°°Àº ¼Ò½º¸¦ ÀÛ¼ºÇߴµ¥ º¤ÅÍÀÇ °æ¿ì´Â º¹»ç ¹æÇâ¿¡ »ó°ü¾øÀÌ Àß µ¿ÀÛÇÑ´Ù. ¶È°°Àº ¼Ò½º¸¦ µ¥Å©¿¡ ´ëÇØ ÀÛ¼ºÇØ º¸¸é µ¥Å©´Â ¸®½ºÆ®¿Í ¸¶Âù°¡Áö·Î ¹æÇâÀÌ À߸øµÇ¸é ¿øº»ÀÌ ÆÄ±«µÈ´Ù.
º¹»çÀü ==> 0 1 2 3 4 5 6 7 8 9
copy ==> 0 1 2 2 3 4 5 6 8 9
back ==> 0 1 2 2 3 4 5 6 8 9
À¯µ¶ º¤ÅÍ¿¡ ´ëÇØ¼¸¸ º¹»ç ¹æÇâ¿¡ »ó°ü¾øÀÌ Àß º¹»çµÇ´Âµ¥ ÀÌ´Â ±¸Çö ¹æ½Ä°ú °ü·ÃÀÌ ÀÖ´Ù. º¤ÅÍ´Â ¿ä¼ÒµéÀÌ ÀÎÁ¢ÇØ ÀÖ´Â ±¸Á¶¸¦ °¡Áö°í ÀÖÀ¸¹Ç·Î Á» ´õ ºü¸¥ º¹»ç¸¦ À§ÇØ memmove ÇÔ¼ö ¶Ç´Â ±×¿¡ ÁØÇÏ´Â ¸Þ¸ð¸® º¹»ç ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù. ÀÌ ÇÔ¼ö´Â CPUÀÇ ¸Þ¸ð¸® À̵¿ Äڵ带 È£ÃâÇϴµ¥ CPU°¡ º¹»ç ¹æÇâ¿¡ µû¶ó ¼ø¼¸¦ ÀûÀýÇÏ°Ô Á¶Á¤Çϱ⠶§¹®¿¡ °ãÄ¡´õ¶óµµ Àß µ¿ÀÛÇÏ´Â °ÍÀÌ´Ù.
±×·¸´Ù¸é ¸®½ºÆ®ÀÇ °æ¿ì´Â ÀÌ·± ¹æÇâ ÀÚµ¿ ÆÇ´ÜÀ» ¿Ö ÇÒ ¼ö ¾øÀ»±î? ¸®½ºÆ®ÀÇ ³ëµå´Â ¸Þ¸ð¸®ÀÇ µµÃ³¿¡ Èð¾îÁ® ÀÖ¾î ¹Ýº¹ÀÚ¸¸À¸·Î´Â ¾ÕµÚ ¼ø¼¸¦ ÆÇ´ÜÇÒ ¼ö ¾øÀ¸¸ç ±×·¡¼ »ç¿ëÀÚ°¡ ¼öµ¿À¸·Î º¹»ç ¹æÇâÀ» ¼±ÅÃÇØ¾ß ÇÑ´Ù. ´ëºÎºÐÀÇ ÄÄÆÄÀÏ·¯¿¡¼ º¤ÅÍ´Â º¹»ç ¹æÇâ¿¡ »ó°ü¾øµµ·Ï ±¸ÇöµÇ¾î ÀÖÁö¸¸ STL ½ºÆÑ¿¡ ±×·¸°Ô ±¸ÇöÇØ¾ß ÇÑ´Ù°í µÇ¾î ÀÖÁö´Â ¾ÊÀ¸¹Ç·Î °¡±ÞÀûÀÌ¸é ¹æÇâ¿¡ ¸Â´Â ÇÔ¼ö¸¦ ¼±ÅÃÇØ¼ »ç¿ëÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù.
´ÙÀ½Àº ¾ÆÁÖ ±âº»ÀûÀÎ ÇÔ¼ö¿¡ ´ëÇØ ¾Ë¾Æº¸ÀÚ. ´ÙÀ½ ÇÔ¼ö´Â À̸§¸¸ ºÁµµ ¹¹ÇÏ´Â ÇÔ¼öÀÎÁö ¾Ë ¼ö ÀÖÀ¸¹Ç·Î ±»ÀÌ µÎ °³ÀÇ °ªÀ» ±³È¯ÇÑ´Ù°í ¼³¸íÇÏÁö ¾Ê¾Æµµ µÉ °ÍÀÌ´Ù.
void swap(T& x, T& y);
³»ºÎ ¾Ë°í¸®ÁòÀº ¾ÆÁÖ ¿ø·ÐÀûÀε¥ º¸³ª¸¶´Ù T=a;a=b;b=T; ÀÌ´Ù. ±âº» ŸÀÔÀº ¹°·ÐÀ̰í ÄÁÅ×À̳ʿ¡ ´ëÇØ¼µµ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç ´ëÀÔ ¿¬»êÀÌ ´À¸° °æ¿ì´Â Ư¼öÈµÈ ÇÔ¼ö°¡ È£ÃâµÈ´Ù. ´ëºÎºÐÀÇ ÄÁÅ×ÀÌ³Ê Å¸ÀÔ¿¡ ´ëÇØ Ư¼öȵǾî ÀÖ¾î ÄÁÅ×À̳ÊÀÇ ±¸Á¶¿¡ µü ¸Â´Â ±³È¯ ¸â¹ö ÇÔ¼ö°¡ È£ÃâµÈ´Ù. µÎ °³ÀÇ º¤ÅͰ¡ ÀÖÀ» ¶§ swap(v1,v2)´Â µÎ º¤ÅÍÀÇ ³»¿ëÀ» ¿ÏÀüÈ÷ ¹Ù²Û´Ù. ¸®½ºÆ®³ª º¤ÅÍ¿¡ ´ëÇØ¼´Â ¸µÅ©³ª ³»ºÎ Æ÷ÀÎÅ͸¸ Á¶ÀÛÇÏ´Â ¸â¹ö ÇÔ¼ö¸¦ È£ÃâÇϵµ·Ï Ư¼öȵǾî ÀÖ¾î »ý°¢º¸´Ù ÈξÀ ºü¸£´Ù. ´ÙÀ½ ÇÔ¼ö´Â ¹Ýº¹ÀÚ ±¸°£³¢¸® ±³Ã¼ÇÑ´Ù.
FwdIt2 swap_ranges(FwdIt1 first1, FwdIt1 last1, FwdIt2 first2);
first1~last1»çÀ̸¦ first2±¸°£°ú ¹Ù²Û´Ù°í »ý°¢ÇÏ¸é µÈ´Ù. ´Ù¸¥ ÄÁÅ×À̳ÊÀÇ ¹Ýº¹ÀÚ ±¸°£³¢¸®µµ °ªÀ» ±³È¯ÇÒ ¼ö ÀÖµÇ µ¿ÀÏ ÄÁÅ×À̳ʳ»ÀÇ ±³È¯ÀÎ °æ¿ì ¹Ýº¹ÀÚ ±¸°£ÀÌ °ãÃļ´Â ¾ÈµÈ´Ù.