40-1-¹Ù.º¤ÅÍÀÇ È°¿ë

º¤ÅÍ´Â Å©±â°¡ ÀÚµ¿À¸·Î °ü¸®µÈ´Ù´Â Á¡¿¡¼­ 19Àå¿¡¼­ ¸¸µç µ¿Àû ¹è¿­°ú À¯»çÇϸç ÅÛÇø´¿¡ ÀÇÇØ ¿ä¼Ò ŸÀÔÀ» ¸¶À½´ë·Î ¼±ÅÃÇÒ ¼ö ÀÖ´Ù´Â Á¡¿¡¼­ TDArray Ŭ·¡½º¿Íµµ À¯»çÇÏ´Ù. ÇÏÁö¸¸ ¸ðµç °ÍÀÌ ÀÚµ¿È­µÇ¾î ÀÖ°í ¾ÈÀüÇϸç À̽ļºÀÌ ÀÖ´Ù´Â ¸é¿¡¼­ ¿¹Á¦ Ŭ·¡½º µûÀ§¿Í ºñ±³ÇÒ ¼ö ÀÖ´Â ´ë»óÀÌ ¾Æ´Ï´Ù. º¤Åʹ ǥÁØÀε¥´Ù ¼º´Éµµ ¿ì¼öÇÏ°í ½Å·Ú¼ºµµ ÀÖ¾î ½ÇÁ¦ ÇÁ·ÎÁ§Æ®¿¡¼­ È°¿ëÇصµ ÁÁÀ»¸¸Å­ ÈǸ¢ÇÏ´Ù. 19Àå¿¡¼­ ¸¸µé¾ú´ø DynArray ¿¹Á¦¸¦ º¤ÅÍ·Î ´Ù½Ã ¸¸µé¾î º¸ÀÚ.

 

¿¹ Á¦ : Dynvector

#include <iostream>

#include <vector>

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;

     dump("ÃÖÃÊ",vi);

     for (int i=1;i<=8;i++) vi.push_back(i);dump("8°³ Ãß°¡",vi);

     vi.insert(vi.begin()+3,10);dump("10 »ðÀÔ",vi);

     vi.insert(vi.begin()+3,11);dump("11 »ðÀÔ",vi);

     vi.insert(vi.begin()+3,12);dump("12 »ðÀÔ",vi);

     vi.erase(vi.begin()+7);dump("¿ä¼Ò 7 »èÁ¦",vi);

}

 

½ÇÇà °á°ú´Â DynArray ¿¹Á¦¿Í µ¿ÀÏÇÏ´Ù. Ãß°¡, »èÁ¦°¡ ÀÚÀ¯·Ó°í ±â¾ï Àå¼Ò¸¦ ÀÚµ¿À¸·Î °ü¸®ÇÏ¸ç ¹è¿­Ã³·³ ¾µ ¼öµµ ÀÖ´Ù.

 

ÃÖÃÊ        ==>

8°³ Ãß°¡    ==> 1 2 3 4 5 6 7 8

10 »ðÀÔ     ==> 1 2 3 10 4 5 6 7 8

11 »ðÀÔ     ==> 1 2 3 11 10 4 5 6 7 8

12 »ðÀÔ     ==> 1 2 3 12 11 10 4 5 6 7 8

¿ä¼Ò 7 »èÁ¦ ==> 1 2 3 12 11 10 4 6 7 8

 

Á÷Á¢ ¸¸µé¾î ¾²´Â °Íº¸´Ù ÈξÀ ´õ ½±°í °£ÆíÇÏ´Ù. °°Àº ŸÀÔÀÇ ÀÚ·á ÁýÇÕÀ» °ü¸®ÇØ¾ß ÇÑ´Ù¸é ´ëºÎºÐÀÇ °æ¿ì º¤ÅÍ°¡ Ź¿ùÇÑ ¼±ÅÃÀÌ µÉ °ÍÀÌ´Ù. ±×·¸´Ù°í Çؼ­ º¤ÅÍ°¡ ¹Ýµå½Ã °°Àº ŸÀÔ¸¸ ´Ù·ê ¼ö ÀÖ´Â °ÍÀº ¾Æ´Ï¸ç ȣȯµÇ´Â ŸÀÔÀÇ ÁýÇÕÀ» ´Ù·ê ¼öµµ ÀÖ´Ù. ±×·¡ÇÈ ¿ÀºêÁ§Æ®ÀÇ ÁýÇÕÀ» ´Ù·ç°í ½Í´Ù¸é ÃÖ»óÀ§ Ŭ·¡½ºÀÇ Æ÷ÀÎÅ͸¦ ÀúÀåÇÏ´Â º¤Å͸¦ ¼±¾ðÇÏ¸é µÈ´Ù. »ó¼Ó °èÃþÀÇ Å¬·¡½º³¢¸®´Â ŸÀÔ È£È¯¼ºÀÌ ÀÖÀ¸¹Ç·Î °°Àº ŸÀÔÀ̶ó°í ºÁµµ ¹«¹æÇÏ´Ù. ´ÙÇü¼º ½Ç½À¿¡¼­ »ç¿ëÇß´ø °´Ã¼ ¹è¿­À» º¤ÅÍ·Î ÀÛ¼ºÇØ º¸ÀÚ.

 

¿¹ Á¦ : GraphicObjectvector

#include <iostream>

#include <vector>

#include <algorithm>

using namespace std;

 

class Graphic

{

public:

     virtual void Draw() { puts("±×·¡ÇÈ ¿ÀºêÁ§Æ®ÀÔ´Ï´Ù."); }

};

 

class Line : public Graphic

{

public:

     void Draw() { puts("¼±À» ±ß½À´Ï´Ù."); }

};

 

class Circle : public Graphic

{

public:

     void Draw() { puts("µ¿±×¶ó¹Ì ±×·È´Ù Ä¡°í."); }

};

 

class Rect : public Graphic

{

public:

     void Draw() { puts("¿ä°Ç »ç°¢ÇüÀÔ´Ï´Ù."); }

};

 

void del(Graphic *g) { delete g; }

 

void main()

{

     vector<Graphic *> vg;

     vg.push_back(new Graphic());

     vg.push_back(new Rect());

     vg.push_back(new Circle());

     vg.push_back(new Line());

 

     vector<Graphic *>::iterator it;

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

          (*it)->Draw();

     }

     for_each(vg.begin(),vg.end(),del);

}

 

vector<Graphic *> ŸÀÔÀº GraphicÀ¸·ÎºÎÅÍ ÆÄ»ýµÈ Ŭ·¡½ºÀÇ ÁýÇÕÀ» ´Ù·ê ¼ö ÀÖ´Â º¤ÅÍÀÌ´Ù. Å©±â¿¡ ¹«°üÇÏ°í »ðÀÔ, »èÁ¦°¡ ÀÚÀ¯·Ó°í STL ¾Ë°í¸®ÁòÀÇ µµ¿òÀ» ¹ÞÀ» ¼öµµ ÀÖ´Ù. ´Ü, ¾Õ¿¡¼­ ¾ê±âÇß´Ù½ÃÇÇ º¤ÅÍ´Â Æ÷ÀÎÅ͸¸ °ü¸®ÇÒ »Ó Æ÷ÀÎÅÍ°¡ °¡¸®Å°´Â °´Ã¼±îÁö °ü¸®ÇÏÁö´Â ¾ÊÀ¸¹Ç·Î º¤ÅÍ°¡ Æı«µÇ±â Àü¿¡ °´Ã¼µéÀº Á÷Á¢ »èÁ¦ÇØ¾ß ÇÑ´Ù.

ÄÄÇ»ÅÍ°¡ °¡Àå Àß ÇÏ´Â ÀÏÀº ºñ½ÁÇÑ ÀÏÀ» ¾Æ¹« ºÒÆò¾øÀÌ Ã³¸®ÇÏ´Â ¹Ýº¹ÀÌ¸ç ¹Ýº¹À» À§Çؼ­´Â °°Àº ŸÀÔÀÇ º¯¼ö ÁýÇÕÀ» ´Ù·ê ÀÏÀÌ ¾ÆÁÖ ¸¹´Ù. ¸ðµç ÇÁ·Î±×·¥Àº ÀÌ·± ŸÀÔÀÇ ÁýÇÕÀ» ´Ù·ç¹Ç·Î º¤ÅÍ°¡ ƯÈ÷ ´õ ½Ç¿ëÀûÀÌ¸ç ¸Å·ÂÀÖ´Â ÄÁÅ×À̳ÊÀÌ´Ù. º¤Å͸¸ ÀÚÀ¯ ÀÚÀç·Î È°¿ëÇÒ ¼ö ÀÖ´Ù¸é ´Ù¸¥ ÀÚ·á ±¸Á¶´Â ¸ð¸£´õ¶óµµ ¿Ø¸¸ÇÑ ÇÁ·Î±×·¥Àº ´Ù ¸¸µé ¼ö ÀÖ´Â Á¤µµ´Ù.

 

 JusoVector

19ÀåÀÇ ÁÖ¼Ò·Ï ¿¹Á¦¸¦ º¤Å͸¦ »ç¿ëÇÑ ÁÖ¼Ò·ÏÀ¸·Î ¹Ù²ã º¸ÀÚ. µ¿Àû ¹è¿­ Áö¿ø ÄÚµå´Â »èÁ¦ÇÏ°í »ç¿ëÀÚÀÇ ÀÎÅÍÆäÀ̽º Äڵ常 Á¶±Ý ¼öÁ¤ÇÏ¸é µÈ´Ù.