40-1-¶ó.»ç¿ëÀÚ Á¤ÀÇ ¿ä¼Ò

º¤Åʹ ŸÀÔÀ» ¹Þ¾Æ µéÀ̴ Ŭ·¡½º ÅÛÇø´À̹ǷΠÀÓÀÇÀÇ ¸ðµç ŸÀÔÀ» ¿ä¼Ò·Î °¡Áú ¼ö ÀÖ´Ù. Áö±Ý±îÁö´Â ¿¹Á¦ Á¦ÀÛÀÇ ÆíÀǸ¦ À§ÇØ ÁÖ·Î Á¤¼öÇüÀÇ º¤Å͸¸ ¸¸µé¾î º¸¾ÒÁö¸¸ Ŭ·¡½º °´Ã¼¸¦ ¿ä¼Ò·Î °¡Áö´Â º¤Å͵µ ¾ó¸¶µçÁö ¸¸µé ¼ö ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦´Â Time °´Ã¼ÀÇ º¤Å͸¦ ¸¸µç´Ù.

 

¿¹ Á¦ : Timevector

#include <iostream>

#include <vector>

using namespace std;

 

class Time

{

protected:

     int hour,min,sec;

public:

     Time(int h,int m,int s) { hour=h;min=m;sec=s; }

     void OutTime() { printf("%d:%d:%d ",hour,min,sec); }

};

 

template<typename C>

void dump(const char *desc, C c)

{

     cout.width(12);cout << left << desc << "==> ";

     for (unsigned i=0;i<c.size();i++) { c[i].OutTime(); }

     cout << endl;

}

 

void main()

{

     vector<Time> vt;

     vt.push_back(Time(1,1,1));

     vt.push_back(Time(2,2,2));

     dump("¿ä¼Ò 2°³",vt);

}

 

Time Ŭ·¡½º¸¦ Á¤ÀÇÇÏ°í vector<Time> ŸÀÔÀÇ vt º¤Å͸¦ ¼±¾ðÇß´Ù. < > °ýÈ£¾È¿¡ ÀúÀåÇÏ°í ½ÍÀº ¿ä¼ÒÀÇ Å¸ÀÔ¸¸ Àû¾î ÁÖ¸é µÈ´Ù. µÎ °³ÀÇ Time °´Ã¼¸¦ ¸¸µé¾î º¤ÅÍ ³¡¿¡ Ãß°¡ÇÏ°í dump ÇÔ¼ö·Î Ãâ·ÂÇØ º¸¾Ò´Ù. dump ÇÔ¼ö´Â Time °´Ã¼ÀÇ OutTimeÀ» È£ÃâÇϵµ·Ï Á¶±Ý º¯°æµÇ¾ú´Âµ¥ Time¿¡ << ¿¬»êÀÚ¸¦ Á¤ÀÇÇÏ¸é ±âÁ¸ÀÇ dump ÇÔ¼ö¸¦ °è¼Ó »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.

 

¿ä¼Ò 2°³    ==> 1:1:1 2:2:2

 

º¤ÅÍ¿¡ ÀúÀåµÈ °´Ã¼µéÀº º¤ÅÍ°¡ Æı«µÉ ¶§ °°ÀÌ Æı«µÇ¹Ç·Î Time °´Ã¼¸¦ º°µµ·Î Æı«ÇÒ ÇÊ¿ä´Â ¾ø´Ù. Time °´Ã¼´Â Å©±â°¡ ¾ÆÁÖ ÀÛÀ¸¹Ç·Î °´Ã¼¸¦ º¤ÅÍ¿¡ ¹Ù·Î ÀúÀåÇصµ º° »ó°üÀÌ ¾ø´Ù. ±×·¯³ª ÀϹÝÀûÀÎ °´Ã¼´Â ´ë´ÜÈ÷ Ŭ ¼ö ÀÖÀ¸¹Ç·Î º¤ÅÍ¿¡ Á÷Á¢ °´Ã¼¸¦ ÀúÀåÇÏ´Â °Íº¸´Ù´Â °´Ã¼ÀÇ Æ÷ÀÎÅ͸¦ ÀúÀåÇÏ´Â °ÍÀÌ ¼º´É»ó À¯¸®Çϸç ÈξÀ ´õ ÀϹÝÀûÀÌ´Ù.

 

¿¹ Á¦ : Timeptrvector

#include <iostream>

#include <vector>

using namespace std;

 

class Time

{

protected:

     int hour,min,sec;

public:

     Time(int h,int m,int s) { hour=h;min=m;sec=s; }

     void OutTime() { printf("%d:%d:%d ",hour,min,sec); }

};

 

template<typename C>

void dump(const char *desc, C c)

{

     cout.width(12);cout << left << desc << "==> ";

     for (unsigned i=0;i<c.size();i++) { c[i]->OutTime(); }

     cout << endl;

}

 

void main()

{

     vector<Time *> vt;

     vt.push_back(new Time(1,1,1));

     vt.push_back(new Time(2,2,2));

     dump("¿ä¼Ò 2°³",vt);

     vector<Time *>::iterator it;

     for (it=vt.begin();it!=vt.end();it++) {

          delete *it;

     }

}

 

º¤ÅÍÀÇ Å¸ÀÔÀÌ vector<Time *>·Î º¯°æµÇ¾úÀ¸¸ç º¤ÅÍ¿¡ ¿ä¼Ò¸¦ Ãß°¡ÇÒ ¶§ Time °´Ã¼°¡ ¾Æ´Ï¶ó new ¿¬»êÀÚ·Î µ¿Àû »ý¼ºÇÑ Time °´Ã¼ÀÇ Æ÷ÀÎÅ͸¦ ÀúÀåÇß´Ù. dump ÇÔ¼öÀÇ OutTime È£Ãâ¹®µµ -> ¿¬»êÀڷΠȣÃâÇϵµ·Ï º¯°æÇØ¾ß ÇÑ´Ù. vt °´Ã¼´Â ¸Þ¸ð¸®¿¡ ´ÙÀ½°ú °°ÀÌ »ý¼ºµÉ °ÍÀÌ´Ù.

°ªÀ» ÀúÀåÇÏ´Â º¤ÅÍ´Â Time °´Ã¼¸¦ Á÷Á¢ °¡ÁöÁö¸¸ Æ÷ÀÎÅ͸¦ ÀúÀåÇÏ´Â º¤ÅÍ´Â µ¿Àû »ý¼ºµÈ Time °´Ã¼ÀÇ Æ÷ÀÎÅ͸¸À» °¡Áø´Ù. Æ÷ÀÎÅ͸¦ °¡Áö´Â º¤Å͸¦ Æı«ÇÒ ¶§´Â °¢ Æ÷ÀÎÅÍ°¡ °¡¸®Å°´Â °´Ã¼¸¦ Á÷Á¢ Æı«ÇØ¾ß ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é µ¿ÀûÀ¸·Î »ý¼ºÇÑ °´Ã¼°¡ Æı«µÇÁö ¾ÊÀ¸¹Ç·Î ¸Þ¸ð¸® ´©¼ö°¡ ¹ß»ýÇÑ´Ù. º¤ÅÍ´Â ¿ä¼Ò¸¦ °ü¸®ÇÒ »ÓÀÌÁö ¿ä¼Ò°¡ °¡¸®Å°´Â °´Ã¼±îÁö´Â °ü¸®ÇÏÁö ¸øÇÑ´Ù.

º¤ÅÍ¿¡ ÀÓÀÇÀÇ Å¸ÀÔÀ» ÀúÀåÇÒ ¼ö ÀÖÁö¸¸ ±×·¸´Ù°í Á¤¸» ¾Æ¹« ŸÀÔÀ̳ª ÀúÀåÇÒ ¼ö ÀÖ´Â °ÍÀº ¾Æ´Ï¸ç ÀÏÁ¤ÇÑ Á¶°ÇÀ» ¸¸Á·Çϴ ŸÀÔ¸¸ ÀúÀåÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦´Â ³»ºÎ¿¡¼­ µ¿Àû ÇÒ´çÀ» ÇÏ´Â °´Ã¼¸¦ ¿ä¼Ò·Î °¡Áö´Â º¤Å͸¦ ¸¸µç´Ù. µ¿Àû ÇÒ´çÀ» Çϴ Ŭ·¡½º´Â »ý¼ºÀÚ, °¡»ó Æı«ÀÚ, º¹»ç »ý¼ºÀÚ, ´ëÀÔ ¿¬»êÀÚ¸¦ ÀûÀýÈ÷ Á¤ÀÇÇØ¾ß ÇÑ´Ù.

 

¿¹ Á¦ : Dynamicvector

#include <iostream>

#include <vector>

#include <algorithm>

using namespace std;

 

class Dynamic

{

private:

     char *ptr;

public:

     Dynamic() {

          ptr=new char[1];

          ptr[0]=0;

     }

     Dynamic(const char *str) {

          ptr=new char[strlen(str)+1];

          strcpy(ptr,str);

     }

     Dynamic(const Dynamic &Other) {

          ptr=new char[strlen(Other.ptr)+1];

          strcpy(ptr,Other.ptr);

     }

     Dynamic &operator =(const Dynamic &Other) {

          if (this != &Other) {

              delete [] ptr;

              ptr=new char[strlen(Other.ptr)+1];

              strcpy(ptr,Other.ptr);

          }

          return *this;

     }

     int operator ==(const Dynamic &Other) const {

          return strcmp(ptr,Other.ptr);

     }

     int operator <(const Dynamic &Other) const {

          return strcmp(ptr,Other.ptr) < 0;

     }

     virtual ~Dynamic() {

          delete [] ptr;

     }

     virtual void OutDynamic() {

          cout << ptr << ' ';

     }

};

 

template<typename C>

void dump(const char *desc, C c)

{

     cout.width(12);cout << left << desc << "==> ";

     for (unsigned i=0;i<c.size();i++) { c[i].OutDynamic(); }

     cout << endl;

}

 

void main()

{

     vector<Dynamic> vt;

     Dynamic a("dog");

     Dynamic b("cow");

     vt.push_back(a);

     vt.push_back(b);

     dump("¿ä¼Ò 2°³",vt);

}

 

Dynamic Ŭ·¡½ºÀÇ Á¤Àǹ®ÀÌ ²Ï ±äµ¥ µðÆúÆ® »ý¼ºÀÚ, º¯È¯ »ý¼ºÀÚ, º¹»ç »ý¼ºÀÚ, = ´ëÀÔ ¿¬»êÀÚ, ==, < ºñ±³ ¿¬»êÀÚ, °¡»ó Æı«ÀÚ µîÀÌ Á¦´ë·Î Á¤ÀǵǾî ÀÖ´Ù. ´Ù ¾Õ Àå¿¡¼­ ÀÌ¹Ì ¹è¿î ³»¿ëµéÀ̹ǷΠº¹½Àµµ ÇÒ °â ÀÌ Å¬·¡½ºÀÇ ³»¿ëÀ» Àß ÀÐ¾î º¸µµ·Ï ÇÏÀÚ. main¿¡¼­ Dynamic ŸÀÔÀ» ÀúÀåÇÏ´Â º¤ÅÍ vt¸¦ ¼±¾ðÇÏ°í µÎ °³ÀÇ Dynamic °´Ã¼¸¦ º¤ÅÍ ³¡¿¡ Ãß°¡ÇÑ ÈÄ Ãâ·ÂÇØ º¸¾Ò´Ù. º° ÀÌ»ó¾øÀÌ Àß µ¿ÀÛÇÒ °ÍÀÌ´Ù.

 

¿ä¼Ò 2°³    ==> dog cow

 

±×·¯³ª ¾Æ¹« ´ë°¡¾øÀÌ ÀÌ·¸°Ô Àß µ¿ÀÛÇÏ´Â °ÍÀº ¾Æ´Ï¸ç DynamicÀÌ º¤ÅÍ ÅÛÇø´ÀÌ ¿ä±¸ÇÏ´Â Á¶°ÇÀ» ¸ðµÎ ¸¸Á·Çϱ⠶§¹®ÀÌ´Ù. °ú¿¬ ¾î¶² Á¶°ÇÀÌ ÇÊ¿äÇÑÁö ¸î °¡Áö Å×½ºÆ®¸¦ ÇØ º¸ÀÚ. push_back ÇÔ¼ö·Î °´Ã¼¸¦ º¤ÅÍ ³¡¿¡ Ãß°¡ÇÒ ¶§ º¹»ç°¡ ¹ß»ýÇϸç À̶§ °´Ã¼ÀÇ º¹»ç »ý¼ºÀÚ°¡ È£ÃâµÈ´Ù. ¸¸¾à DynamicÀÌ º¹»ç »ý¼ºÀÚ¸¦ Á¤ÀÇÇÏÁö ¾ÊÀ¸¸é ÀÌ ¿¹Á¦´Â ´Ù¿îµÈ´Ù. º¹»ç »ý¼ºÀÚ¸¦ Àá½Ã ÁÖ¼®À¸·Î ¹­¾î ³õ°í ½ÇÇàÇØ º¸ÀÚ.

º¹»ç »ý¼ºÀÚ°¡ Á¤ÀǵǾî ÀÖÁö ¾ÊÀ¸¸é µðÆúÆ® º¹»ç »ý¼ºÀÚ°¡ ¾èÀº º¹»ç¸¦ ÇÏ°Ô µÉ °ÍÀÌ°í Á¤¸®µÉ ¶§ °´Ã¼ a¿Í º¤ÅÍ¿¡ Ãß°¡µÈ »çº»ÀÌ °°Àº ¹öÆÛ¸¦ ÀÌÁß Á¤¸®ÇϹǷΠ¹®Á¦°¡ »ý±â´Â °ÍÀÌ´Ù. º¤ÅÍ¿¡ ÀúÀåÇÒ Å¸ÀÔÀº º¹»ç »ý¼ºÀÚ¸¦ Á¤ÀÇÇÏ¿© ¿ÏÀüÇÑ »çº»À» ¸¸µé ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ´ÙÀ½Àº ´ëÀÔ ¿¬»êÀÚÀÇ °æ¿ì¸¦ º¸ÀÚ. ´ÙÀ½ Äڵ带 main ÇÔ¼öÀÇ ³¡¿¡ ÀÛ¼ºÇØ º¸°í ½ÇÇàÇØ º¸¾Æ¶ó.

 

Dynamic c;

c=vt[1];

 

»õ·Î¿î °´Ã¼ c¸¦ ¼±¾ðÇÑ ÈÄ vt[1] ¹ø° ¿ä¼Ò(Áï b°´Ã¼ÀÇ »çº»)À» ´ëÀÔ¹Þ¾Ò´Ù. º°´Ù¸¥ ÀÌ»ó¾øÀÌ Àß µ¿ÀÛÇϴµ¥ Dynamic Ŭ·¡½º°¡ ´ëÀÔ ¿¬»êÀÚ¸¦ Á¦´ë·Î Á¤ÀÇÇÏ°í Àֱ⠶§¹®ÀÌ´Ù. ´ëÀÔ ¿¬»êÀÚ¸¦ ÁÖ¼® ó¸®ÇÏ¸é ´ëÀԽà ¾èÀº º¹»ç¸¦ ÇϹǷΠÀÌ Äڵ嵵 ¿ª½Ã ´Ù¿îµÈ´Ù. ´ÙÀ½Àº == ¿¬»êÀÚ°¡ ¿Ö ÇÊ¿äÇÑÁö »ìÆ캸±â À§ÇØ ´ÙÀ½ Äڵ带 ÀÛ¼ºÇØ º¸ÀÚ.

 

Dynamic d("cat");

find(vt.begin(),vt.end(),d);

 

"cat" ¹®ÀÚ¿­À» °¡Áö´Â Dynamic °´Ã¼°¡ º¤ÅÍ¿¡ ÀÖ´ÂÁö find ÇÔ¼ö·Î °Ë»öÇØ º¸¾Ò´Âµ¥ º°´Ù¸¥ ÀÌ»ó¾øÀÌ ÄÄÆÄÀÏµÇ°í °Ë»öµµ µÈ´Ù. ÀÌ Äڵ尡 Àß ÄÄÆÄÀϵǴ ÀÌÀ¯´Â == ¿¬»êÀÚ ÇÔ¼ö°¡ Á¤ÀǵǾî À־ find°¡ º¤Åͳ»ÀÇ °´Ã¼¿Í Àμö·Î ÁÖ¾îÁø d°´Ã¼¸¦ ºñ±³ÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù. find ÇÔ¼öÀÇ º»Ã¼ Äڵ带 È®ÀÎÇØ º¸¸é == ¿¬»êÀÚ·Î ¿ä¼Ò¸¦ ºñ±³ÇÏ´Â Äڵ尡 ÀÛ¼ºµÇ¾î ÀÖ´Ù. == ¿¬»êÀÚ¸¦ ÁÖ¼® ó¸®Çϸé ÇÊ¿äÇÑ ±â´ÉÀÌ Á¤ÀǵÇÁö ¾Ê¾Ò´Ù´Â ¿¡·¯°¡ find ÇÔ¼ö º»Ã¼¿¡¼­ ¹ß»ýÇÒ °ÍÀÌ´Ù. ´ÙÀ½ ÄÚµå´Â ÀÌ º¤ÅÍ°¡ Á¤·Ä °¡´ÉÇÑÁö¸¦ Á¡°ËÇÑ´Ù.

 

sort(vt.begin(), vt.end());

dump("Á¤·Ä ÈÄ",vt);

 

°íÀÛ µÎ °³¹Û¿¡ ¾Èµé¾î ÀÖ±â´Â ÇÏÁö¸¸ Á¤·Ä °á°úµµ Á¦´ë·Î ³ª¿Â´Ù. ÀÌ·± Á¤·ÄÀÌ °¡´ÉÇÑ ÀÌÀ¯´Â < ¿¬»êÀÚ°¡ Á¤ÀǵǾî ÀÖ¾î Dynamic °´Ã¼³¢¸® ´ë¼Ò ºñ±³°¡ °¡´ÉÇϱ⠶§¹®ÀÌ´Ù. ÀÌ ¿¬»êÀÚ¸¦ ÁÖ¼® ó¸®ÇÏ¸é ¿ª½Ã ¿¡·¯ ¸Þ½ÃÁö°¡ Ãâ·ÂµÉ °ÍÀÌ´Ù. Æı«ÀÚ¸¦ »ý·«Çϸé ÄÄÆÄÀÏ°ú ½ÇÇà¿¡´Â ÀÌ»óÀÌ ¾øÁö¸¸ ÇÒ´çÇÑ ¸Þ¸ð¸®°¡ ÇØÁ¦µÇÁö ¾ÊÀ¸¹Ç·Î ¸Þ¸ð¸® ´©¼ö°¡ ¹ß»ýÇϸç Æı«ÀÚ°¡ °¡»óÀÌ ¾Æ´Ï¸é ÆÄ»ý Ŭ·¡½º°¡ Á¦´ë·Î Á¤¸®µÇÁö ¾Ê´Â´Ù.

°á±¹ Dynamic Ŭ·¡½º°¡ º¤ÅÍ¿¡ ÀúÀåµÇ·Á¸é À§ ¼Ò½º¿¡ Á¤ÀǵǾî ÀÖ´Â ¸ðµç ÀåÄ¡µéÀÌ ÇÊ¿äÇÏ´Ù. Çϳª¶óµµ ºüÁö¸é º¤ÅÍ ÅÛÇø´°ú ¾Ë°í¸®ÁòÀÇ ¿ä±¸ Á¶°ÇÀ» ¸¸Á·ÇÏÁö ¸øÇϹǷΠÄÁÅ×À̳ʿ¡ ÀúÀåÇÒ ¼ö ¾ø°Å³ª µ¿ÀÛ Áß¿¡ ´Ù¿îµÇ°Å³ª ÄÄÆÄÀÏÀÌ °ÅºÎµÈ´Ù. ¹«½¼ Á¶°ÇÀÌ Àú·¸°Ô ¸¹À¸³Ä°í ÇÏ°ÚÁö¸¸ ¿øÄ¢Àº ¾ÆÁÖ °£´ÜÇÏ´Ù. int¿Í ¶È°°ÀÌ µ¿ÀÛÇϴ ŸÀÔÀÌ¸é ¾Æ¹«·± ¹®Á¦°¡ ¾ø´Ù.

»ç¿ëÀÚ Á¤ÀÇ Å¸ÀÔÀ» º¤ÅÍ¿¡ ³Ö±â´Â ¾ÆÁÖ ¾î·Æ´Ù´Â ´À³¦ÀÌ µé°ÚÁö¸¸ ´ÙÇàÈ÷ ±×·¸Áö´Â ¾Ê´Ù. Dynamic Ŭ·¡½º´Â µ¿Àû ÇÒ´çÀ» Çϱ⠶§¹®¿¡ ¸¹Àº ÇÔ¼öµéÀÌ ÇÊ¿äÇÏÁö¸¸ Time °°Àº ´Ü¼ø ¸â¹ö¸¸ °¡Áø Ŭ·¡½º´Â ÄÄÆÄÀÏ·¯°¡ ¸¸µé¾îÁÖ´Â µðÆúÆ®¸¸À¸·Îµµ ÃæºÐÇÏ¸ç ºñ±³ ¿¬»êÀÚ Á¤µµ¸¸ Á¤ÀÇÇÏ¸é µÈ´Ù. µ¿Àû ÇÒ´çÀ» Çϴ ŸÀÔÀÇ Æ÷ÀÎÅÍ¿¡ ´ëÇÑ º¤Å͵µ ¹°·Ð ¸¸µé ¼ö ÀÖÀ¸¸ç Æ÷ÀÎÅÍ¿¡ ´ëÇÑ °Ë»ö, Á¤·Äµµ °¡´ÉÇÏ´Ù.

 

¿¹ Á¦ : Dynamicptrvector

#include <iostream>

#include <vector>

#include <algorithm>

using namespace std;

 

class Dynamic

{

     friend struct DynCompare;

     friend struct DynFind;

private:

      char *ptr;

public:

      Dynamic() {

             ptr=new char[1];

             ptr[0]=0;

      }

      Dynamic(const char *str) {

             ptr=new char[strlen(str)+1];

             strcpy(ptr,str);

      }

      Dynamic(const Dynamic &Other) {

             ptr=new char[strlen(Other.ptr)+1];

             strcpy(ptr,Other.ptr);

      }

      Dynamic &operator =(const Dynamic &Other) {

             if (this != &Other) {

                   delete [] ptr;

                   ptr=new char[strlen(Other.ptr)+1];

                   strcpy(ptr,Other.ptr);

             }

             return *this;

      }

      int operator ==(const Dynamic &Other) const {

             return strcmp(ptr,Other.ptr);

      }

      int operator <(const Dynamic &Other) const {

             return strcmp(ptr,Other.ptr) < 0;

      }

      virtual ~Dynamic() {

             delete [] ptr;

      }

      virtual void OutDynamic() {

            cout << ptr << ' ';

      }

};

 

template<typename C>

void dump(const char *desc, C c)

{

      cout.width(12);cout << left << desc << "==> ";

      for (unsigned i=0;i<c.size();i++) { c[i]->OutDynamic(); }

      cout << endl;

}

 

struct DynCompare {

     bool operator()(Dynamic *a, Dynamic *b) const {

          return strcmp(a->ptr, b->ptr)<0;

     }

};

 

struct DynFind {

     bool operator()(Dynamic *a) const {

          return strcmp(a->ptr, "cat")==0;

     }

};

 

void main()

{

     vector<Dynamic *> vt;

     vt.push_back(new Dynamic("dog"));

     vt.push_back(new Dynamic("cow"));

     dump("¿ä¼Ò 2°³",vt);

 

     Dynamic d("cat");

     puts(find_if(vt.begin(),vt.end(),DynFind())==vt.end() ? "¾ø´Ù":"ÀÖ´Ù");

     sort(vt.begin(), vt.end(), DynCompare());

     dump("Á¤·Ä ÈÄ",vt);

 

     vector<Dynamic *>::iterator it;

     for (it=vt.begin();it!=vt.end();it++) {

          delete *it;

     }

}

 

º¤ÅÍÀÇ ¿ä¼Ò ŸÀÔÀ» Dynamic *·Î º¯°æÇÏ°í new ¿¬»êÀÚ·Î µ¿Àû »ý¼ºÇÑ Æ÷ÀÎÅ͸¦ º¤ÅÍ¿¡ ÀúÀåÇÏ¸é µÈ´Ù. ¹Ýº¹ÀڷκÎÅÍ ¸â¹ö ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§ -> ¿¬»êÀÚ¸¦ »ç¿ëÇØ¾ß ÇÏ°í º¤Å͸¦ Æı«Çϱâ Àü¿¡ ¿ä¼ÒµéÀ» Á÷Á¢ Æı«Çϱ⵵ ÇØ¾ß ÇÑ´Ù. ±×·¸´Ù¸é À̶§ °Ë»öÀ̳ª Á¤·ÄÀº ¾î¶»°Ô ÇØ¾ß ÇÒ±î? Æ÷ÀÎÅÍ¿¡ ´ëÇØ °Ë»öÇϰųª Á¤·ÄÇÏ´Â °ÍÀº ¾Æ¹« Àǹ̰¡ ¾ø°í Æ÷ÀÎÅÍ°¡ °¡¸®Å°´Â °´Ã¼¸¦ ´ë»óÀ¸·Î ºñ±³¸¦ ¼öÇàÇØ¾ß Çϴµ¥ ÀÌ·² ¶§ ¾²´Â °ÍÀÌ ¹Ù·Î Á¶°ÇÀÚ ÇÔ¼ö °´Ã¼ÀÌ´Ù.

°Ë»ö°ú Á¤·Ä ¸ðµÎ Á¶°ÇÀÚ ¹öÀüÀÇ ÇÔ¼ö¸¦ »ç¿ëÇß´Ù. ¿¹Á¦ÀÇ DynCompare, DynFind´Â Àü´ÞµÈ Æ÷ÀÎÅͷκÎÅÍ ptrÀ» Àоî ÀÌ Æ÷ÀÎÅÍ°¡ °¡¸®Å°´Â °÷ÀÇ ³»¿ëÀ» ºñ±³ÇϹǷΠ°´Ã¼ÀÇ Æ÷ÀÎÅÍ°¡ ¾Æ´Ï¶ó Æ÷ÀÎÅÍ°¡ °¡¸®Å°´Â ½Çü¸¦ ´ë»óÀ¸·Î °Ë»ö ¹× Á¤·ÄÀ» ÇÏ°Ô µÈ´Ù. ÀÌ·ÐÀûÀ¸·Î º¤ÅÍ¿¡ Æ÷ÀÎÅ͸¦ ÀúÀåÇÏ´Â °ÍÀÌ °¡´ÉÇϱâ´Â ÇÏÁö¸¸ º¸´Ù½ÃÇÇ ¿©·¯ °¡Áö·Î ½Å°æ½á¾ß ÇÒ °ÍµéÀÌ ¸¹°í ºÒÆíÇϱ⠶§¹®¿¡ º¤ÅÍ¿¡´Â Åë»ó °ªÀ» ÀúÀåÇÏ´Â °ÍÀÌ ±ÇÀåµÈ´Ù.