31-3-´Ù.ÅÛÇø´ Áßø

ÅÛÇø´ÀÇ Àμö¿­¿¡ µé¾î°¥ ¼ö Àִ ŸÀÔ¿¡´Â Ưº°ÇÑ Á¦ÇÑÀÌ ¾ø´Ù. ±âº» ŸÀÔÀº ¹°·ÐÀ̰í Ŭ·¡½º ŸÀÔµµ ÅÛÇø´ÀÇ Àμö¿­¿¡ ³ÖÀ» ¼ö ÀÖ´Ù. ±×·¸´Ù¸é ÅÛÇø´À¸·Î ¸¸µç Ŭ·¡½ºµµ ºÐ¸íÈ÷ ŸÀÔÀÇ ÀÏÁ¾À̹ǷΠ´Ù¸¥ ÅÛÇø´ÀÇ Àμö°¡ µÉ ¼ö ÀÖ´Ù´Â ¾ê±âÀε¥ Áï, ÅÛÇø´³¢¸® ÁßøµÉ ¼ö ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦´Â PosValue ÅÛÇø´ Ŭ·¡½º¸¦ ¿ä¼Ò·Î °¡Áö´Â ½ºÅÃÀ» Á¤ÀÇÇÑ´Ù.

 

¿¹ Á¦ : NestTemplate

#include <Turboc.h>

#include <iostream>

using namespace std;

#include "TStack.h"

 

template <typename T>

class PosValue

{

private:

     int x,y;

     T value;

public:

     PosValue() : x(0),y(0),value(0) { }

     PosValue(int ax, int ay, T av) : x(ax),y(ay),value(av) { }

     void OutValue() {

          gotoxy(x,y);

          cout << value << endl;

     }

};

 

void main()

{

     TStack<PosValue<int> > sPos(10);

 

     PosValue<int> p1(5,5,123);

     PosValue<int> p2;

     sPos.Push(p1);

     p2=sPos.Pop();

     p2.OutValue();

}

 

¼±µÎ¿¡´Â TStack Ŭ·¡½º ÅÛÇø´°ú PosValue Ŭ·¡½º ÅÛÇø´ÀÌ ¼±¾ðµÇ¾î ÀÖÀ¸¸ç ÀÌ µÎ ÅÛÇø´À¸·Î ÀÓÀÇÀÇ Å¸ÀÔ¿¡ ´ëÇÑ ½ºÅðú PosValue °´Ã¼¸¦ ¸¸µé ¼ö ÀÖ´Ù. ÃʱâÈ­µÇÁö ¾ÊÀº °´Ã¼¸¦ ¸¸µé ¼ö ÀÖµµ·Ï Çϱâ À§ÇØ PosValue¿¡ µðÆúÆ® »ý¼ºÀÚ¸¦ Ãß°¡·Î Á¤ÀÇÇß´Ù. main¿¡¼­´Â ´Ù¼Ò º¹ÀâÇÑ Çü½ÄÀ» °¡Áö´Â sPos¶ó´Â °´Ã¼¸¦ ¼±¾ðÇϰí Àִµ¥ ÀÌ °´Ã¼´Â TStackÀ¸·ÎºÎÅÍ ¸¸µé¾îÁ³À¸¹Ç·Î ÀÏ´ÜÀº ½ºÅÃÀÌ´Ù. ½ºÅÿ¡ µé¾î°¡´Â ¿ä¼Ò´Â Àμö¿­¿¡ ÀÖ´Â PosValue<int> ŸÀÔÀ̹ǷΠÀÌ·± °´Ã¼µéÀÇ Àӽà ÀúÀå¼Ò°¡ µÈ´Ù.

mainÀÇ ³ª¸ÓÁö ÄÚµå´Â PosValue<int>ÇüÀÇ °´Ã¼ p1, p2 µÑÀ» ¼±¾ðÇϰí p1À» ½ºÅÿ¡ Ǫ½ÃÇÑ ÈÄ p2·Î ÆËÇØ º¸¾Ò´Ù. Ǫ½ÃÇÑ °ªÀ» ±×´ë·Î »©³» ´ëÀÔÇßÀ¸¹Ç·Î p2°¡ p1°ú °°¾ÆÁú °ÍÀÌ´Ù. p2ÀÇ °ªÀ» Ãâ·ÂÇØ º¸¸é p1ÀÇ »ý¼ºÀÚ¿¡¼­ ÃʱâÈ­ÇÑ À§Ä¡¿¡ 123À̶ó´Â °ªÀÌ Ãâ·ÂµÉ °ÍÀÌ´Ù. ÄÄÆÄÀÏ·¯´Â ÁßøµÈ ¼±¾ð¹®¿¡¼­ ¾ÈÂÊ Å¬·¡½ººÎÅÍ Â÷·Ê´ë·Î ±¸Ã¼È­ÇÑ´Ù. ÅÛÇø´³¢¸® ÁßøµÇ¾î ÀÖÀ» »ÓÀÌÁö º°´Ù¸¥ »çÇ×Àº ¾ø´Ù. ´Ü, ÀÌ·± Áßø ÅÛÇø´ ¼±¾ð¹®À» ÀÛ¼ºÇÒ ¶§ ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇؼ­´Â ¾ÈµÈ´Ù.

 

TStack<PosValue<int>> sPos(10);

 

ÅÛÇø´ Àμö¿­¾È¿¡ Àμö¿­ÀÌ ÀÖÀ¸¹Ç·Î ´Ý´Â °ýÈ£ >°¡ µÎ ¹ø ¿¬°ÅǪ ³ª¿À´Âµ¥ ÀÌ·¸°Ô µÇ¸é ÄÄÆÄÀÏ·¯´Â >>¸¦ ¿À¸¥ÂÊ ½¬ÇÁÆ® ¿¬»êÀÚ·Î ÇØ¼®ÇÏ°Ô µÈ´Ù. ¼±¾ð¹®¿¡ ¿¬»êÀÚ°¡ ¿Ã ¼ö ¾øÀ¸¹Ç·Î ÀÌ ¹®ÀåÀº ¿¡·¯·Î ó¸®µÉ °ÍÀÌ´Ù. ±×·¡¼­ ÅÛÇø´³¢¸® ÁßøµÉ ¶§ Àμö¿­ÀÇ ´Ý´Â °ýÈ£ »çÀÌ¿¡´Â ¹Ýµå½Ã °ø¹éÀ» Çϳª ³Ö¾î ½¬ÇÁÆ® ¿¬»êÀÚ¿Í ±¸ºÐµÇµµ·Ï ÇØ¾ß ÇÑ´Ù.

C++Àº ÅÛÇø´ÀÇ ÁßøÀ» ¹®¹ýÀûÀ¸·Î Çã°¡ÇϹǷΠÀÌÁß »ïÁßÀ¸·Î ÅÛÇø´À» ÁßøÇÒ ¼öµµ ÀÖ´Ù. ±×·¯³ª ¹®¹ý°ú´Â º°°³·Î ÅÛÇø´³¢¸® ÁßøµÇ·Á¸é µÎ Ŭ·¡½º°¡ ÀÓÀÇÀÇ Å¸ÀÔ¿¡ ´ëÇØ¼­µµ Àß µ¿ÀÛÇÒ ¼ö ÀÖµµ·Ï ÃæºÐÈ÷ ÀϹÝÈ­µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. ´ë»ó ŸÀÔÀ» ¼öÄ¡ÇüÀ¸·Î °¡Á¤ÇÏ¿© -1°°Àº ƯÀ̰ªÀ» »ç¿ëÇØ¼­´Â ¾ÈµÇ¸ç ´ëÀÔ ¿¬»êÀ» ÇÏ´Â ¿ä¼Ò´Â ´ëÀÔ ¿¬»êÀÚ¸¦ ÀûÀýÇÏ°Ô ¿À¹ö·ÎµùÇØ¾ß ÇÑ´Ù. Ãâ·Â¹®À¸·Î coutÀ» »ç¿ëÇÑ´Ù¸é ´ë»ó ŸÀÔÀº << ¿¬»êÀÚµµ Á¤ÀÇÇØ¾ß ÇÑ´Ù.

ÅÛÇø´³¢¸® Áßø °¡´ÉÇϹǷΠÀÚ½ÅÀÌ ÀÚ½ÅÀ» Æ÷ÇÔÇÏ´Â ÅÛÇø´À» ¸¸µé ¼ö ÀÖ´Ù. TDArray Ŭ·¡½º ÅÛÇø´Àº ÀÓÀÇÀÇ Å¸ÀÔÀ» ¹è¿­ ¿ä¼Ò·Î °¡Áú ¼ö Àִµ¥ ±× ŸÀÔÀ» TDArray·Î ÁØ´Ù¸é µ¿Àû ¹è¿­ÀÇ µ¿Àû ¹è¿­À» ¸¸µå´Â °Íµµ °¡´ÉÇÏ´Ù´Â ¾ê±âÀÌ´Ù. TDArray<TDArray<int> > ara;´Â Á¤¼öÇüÀ» ¿ä¼Ò·Î °¡Áö´Â µ¿Àû ¹è¿­À» ¿ä¼Ò·Î °¡Áö´Â µ¿Àû ¹è¿­ ara¸¦ ¼±¾ðÇÑ °ÍÀÌ´Ù.