º¤ÅÍ´Â Å©±â°¡ ÀÚµ¿À¸·Î °ü¸®µÈ´Ù´Â Á¡¿¡¼ 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ÀåÀÇ ÁÖ¼Ò·Ï ¿¹Á¦¸¦ º¤Å͸¦ »ç¿ëÇÑ ÁÖ¼Ò·ÏÀ¸·Î ¹Ù²ã º¸ÀÚ. µ¿Àû ¹è¿ Áö¿ø ÄÚµå´Â »èÁ¦ÇÏ°í »ç¿ëÀÚÀÇ ÀÎÅÍÆäÀ̽º Äڵ常 Á¶±Ý ¼öÁ¤ÇÏ¸é µÈ´Ù.