MoniWiki¸Þ¸ðÀå_STL
Login:
Password:
´ë¹®|ã±â|¹Ù²ï±Û|¸ñ·Ï|¸Þ¸ðÀå|Ã¥°¥ÇÇ|¿¬²É|¸µÅ©
Edit Diff Reload Search Print Info Mail Help RSS

@ 2005-04-26 @

  STL (Standard Template Library, Ç¥ÁØ ÅÛÇø´ ¶óÀ̺귯¸®)

Âü°í¼­Àû;
¢¹ C++ Standard Library Æ©Å丮¾ó¡¤·¹ÆÛ·±½º/ ´ÏÄݶóÀÌ M.Á¶½´Æ¼½º Àú/ ¹®Á¤È¯, ±èÈñÁØ °ø¿ª/ 2003/ ÀÎÆ÷ºÏ

0-1.ÀϹÝÈ­ ÇÁ·Î±×·¡¹ÖÀÇ ¸ñÀûÀº µ¥ÀÌÅÍÇü°ú ¹«°üÇÑ Äڵ带 ÀÛ¼ºÇÏ´Â °ÍÀ¸·Î ¾Ë°í¸®Áò¿¡ ÁßÁ¡À» µÐ´Ù.
¹è¿­, ¿¬°á ¸ñ·Ï ¶Ç´Â ´Ù¸¥ ÄÁÅ×À̳ÊÇü¿¡ ÀÛ¿ëÇÏ´Â ´ÜÀÏ °Ë»ö ÇÔ¼ö¸¦ È®º¸ÇÏ´Â °ÍÀÌ´Ù.
Áï, ÇÔ¼ö´Â ÄÁÅ×À̳ʿ¡ ÀúÀåµÈ µ¥ÀÌÅÍ Çü»Ó¸¸ ¾Æ´Ï¶ó ÄÁÅ×ÀÌ³Ê ÀÚüÀÇ µ¥ÀÌÅÍ ±¸Á¶Ã¼¿¡µµ
±¸¼ÓµÇÁö ¾Ê¾Æ¾ß ÇÑ´Ù.
-2.°´Ã¼ ÁöÇâ ÇÁ·Î±×·¡¹ÖÀº ÇÁ·Î±×·¡¹ÖÀÇ µ¥ÀÌÅÍ Ãø¸éÀ» Áß½ÃÇÑ´Ù.

1-1.STLÀÇ ±âº» °³³äÀº µ¥ÀÌÅÍ¿Í µ¿ÀÛÀ» ±¸ºÐÇÏ´Â °Í¿¡ ÀÖ´Ù.
µ¥ÀÌÅÍ´Â ÄÁµ¥ÀÌ³Ê Å¬·¡½º¿¡ ÀÇÇؼ­ °ü¸®µÇ¸ç, µ¿ÀÛÀº ¼öÁ¤ °¡´ÉÇÑ ¾Ë°í¸®Áò¿¡ ÀÇÇؼ­ Á¤ÀǵȴÙ. ¹Ýº¹ÀÚ´Â ÀÌ µÎ ÄÄÆ÷³ÍÆ®¸¦ ¿¬°á½ÃÅ°´Â ¿ªÇÒÀ» ÇÑ´Ù. ÀÌ°ÍÀº ¸ðµç ¾Ë°í¸®ÁòÀÌ ¸ðµç Á¾·ùÀÇ ÄÁÅ×ÀÌ³Ê¿Í »óÈ£ ÀÛ¿ëÇÏ´Â °ÍÀ» °¡´ÉÇÏ°Ô ÇÑ´Ù.
-2.STLÀº °¢ ºÎºÐÀÌ Á¶È­µÇµµ·Ï ¼³°èµÈ ¶óÀ̺귯¸®À̸ç,
STLÀº ±¸¼º ¿ä¼Ò´Â µµ±¸ÀÌÁö¸¸ ´Ù¸¥ µµ±¸¸¦ ±¸¼ºÇÏ´Â ±âº» ¿ä¼ÒÀ̱⵵ ÇÏ´Ù.
STLÀ» ÀÌÇØÇÏ´Â ¿­¼è´Â ¹Ýº¹ÀÚ(Æ÷ÀÎÅ͸¦ ÀϹÝÈ­ÇÑ °Í)¸¦ ÀÌÇØÇÏ´Â °ÍÀ¸·Î,
STLÇÔ¼ö´Â ¹Ýº¹ÀÚ¿Í ¹Ýº¹ÀÚ ¹üÀ§¸¦ ´Ù·é´Ù.
STLÀº ´Ù¼¸ °¡Áö ¹Ýº¹ÀÚ¸¦ Á¤ÀÇÇϴµ¥ ÇÊ¿äÇÑ ¹Ýº¹ÀÚ Á¾·ù¿¡ µû¶ó ±× ¾Ë°í¸®ÁòÀ» ¹¦»çÇÑ´Ù.
´Ù¼¸ °¡Áö ¾Ë°í¸®ÁòÀº ÀÔ·Â ¹Ýº¹ÀÚ, Ãâ·Â ¹Ýº¹ÀÚ, Á¤¹æÇ⠹ݺ¹ÀÚ, ¾ç¹æÇ⠹ݺ¹ÀÚ,
ÀÓÀÇ Á¢±Ù ¹Ýº¹ÀÚÀÌ´Ù.

2-1.´ÙÁß ¹üÀ§ ó¸®
´ÙÁß ¹üÀ§¸¦ »ç¿ëÇÏ´Â ¾Ë°í¸®ÁòÀ» »ç¿ëÇÒ °æ¿ì, »ç¿ëÀÚ´Â µÎ ¹ø°·Î Á¦°øÇÏ´Â ¹üÀ§°¡ Àû¾îµµ ù ¹ø°·Î Á¦°øµÇ´Â ¹üÀ§º¸´Ù Ä¿¾ß ÇÑ´Ù´Â »ç½ÇÀ» º¸ÀåÇؾ߸¸ ÇÑ´Ù.
-2.¿¡·¯ Çڵ鸵
STL µðÀÚÀÎÀÇ ¸ñÇ¥´Â ¾ÈÁ¤¼ºº¸´Ù´Â ÃÖ°íÀÇ ¼º´É¿¡ ÀÖ´Ù. ¿¡·¯ °Ë»ç´Â ½Ã°£ÀÇ ¼ÒºñÇϱ⠶§¹®¿¡ STL¿¡¼­´Â ´ëºÎºÐ ÀÌ·ç¾îÁöÁö ¾Ê´Â´Ù.
...ƯÈ÷, STLÀ» »ç¿ëÇÏ°íÀÚ ÇÒ °æ¿ì´Â ´ÙÀ½°ú °°Àº ¿ä±¸»çÇ×À» ÁöÄѾ߸¸ ÇÑ´Ù.
¡ß ¹Ýº¹ÀÚ´Â ¹Ýµå½Ã À¯È¿Çؾ߸¸ ÇÑ´Ù.
¡ß Á¾·á À§Ä¡ ´ÙÀ½À» °¡¸®Å°´Â ¹Ýº¹ÀÚ´Â ÂüÁ¶ÇÏ´Â ¿ø¼Ò°¡ ¾ø´Ù.
¡ß ¹üÀ§´Â ¹Ýµå½Ã À¯È¿Çؾ߸¸ ÇÑ´Ù.
-3.¿¹¿Üó¸®
¼Ò¸êÀÚ¿¡¼­ ¿¹¿Ü¸¦ ´øÁöÁö ¾Ê´Â´Ù´Â °ÍÀ» ¹ÙÅÁÀ¸·Î ÇÏ°í ÀÖ´Ù´Â °ÍÀÌ´Ù.
-4.NULL ŸÀÔÀÇ È¥¶õÇÔ ¶§¹®¿¡ C++¿¡¼­ NULLÀ» »ç¿ëÇÏ´Â °ÍÀ» ±ÇÀåÇÏÁö ¾Ê´Â´Ù. ´ë½Å '0'À̳ª NIL °°Àº Ưº°ÇÑ »ç¿ëÀÚ Á¤ÀÇ »ó¼ö°¡ ´õ ³ªÀ» ¼ö ÀÖ´Ù.

Ç¥ÁØ STL ½ÃÄö½º(sequence) ÄÁÅ×ÀÌ³Ê #

0.vector, list, deque, string,

1-1.vector ÅÛÇø´ Ŭ·¡½º ; Àü»ê ºÐ¾ß¿¡¼­ º¤ÅͶó´Â ¿ë¾î´Â ¹è¿­À» ÀǹÌ
³¡¿¡¼­¸¸ °íÁ¤ ½Ã°£ »ðÀÔ°ú »èÁ¦¸¦ Á¦°øÇÏ°í ±× ¿Ü¿¡¼­´Â ¼±Çü ½Ã°£ »ðÀÔ°ú »èÁ¦ ±â´ÉÀ» Á¦°øÇϸç,
vector Ŭ·¡½º´Â ´õ¿í Æí¸®ÇÑ ÀÎÅÍÆäÀ̽º¿Í ¾ÈÁ¤¼ºÀ¸·Î µ¿Àû ¹è¿­ÀÇ ¸ðµç ±â´ÉÀ» Á¦°øÇÑ´Ù.
-2.vectorÀÇ ´É·Â
»ç¿ëÀÚ°¡ vector ¾ÈÀÇ Æ÷ÀÎÅͳª ·¹ÆÛ·±½º, ¹Ýº¹ÀÚ¸¦ °ü¸®Çϰųª ¶Ç´Â ¼Óµµ°¡ ¸ñÇ¥¶ó¸é ¿ë·®À» ¸ÕÀú È®º¸ÇÏ´Â °ÍÀÌ Áß¿äÇÏ´Ù.
ÀçÇÒ´çÀ» ÇÇÇϱâ À§Çؼ­´Â reserve()¸¦ »ç¿ëÇÏ¸é µÈ´Ù. ÀÌ ÇÔ¼ö´Â »ç¿ëÀÚ°¡ ¿øÇÏ´Â ¸¸Å­ÀÇ ¿ë·®À» È®º¸ÇØ ÁØ´Ù.
-3.±âÁ¸ÀÇ ¹è¿­Ã³·³ vector¸¦ »ç¿ëÇϱâ
ù ¹ø° ¿ø¼ÒÀÇ ÁÖ¼Ò ´ë½Å ¹Ýº¹ÀÚ¸¦ Àü´ÞÇؼ­´Â ¾ÈµÈ´Ù´Â °ÍÀÌ´Ù. vectorÀÇ ¹Ýº¹ÀÚ´Â ±¸Çö¿¡ µû¶ó Á¤ÀǵǴ ŸÀÔÀ̱⠶§¹®¿¡, ÀÌ°ÍÀº ±âÁ¸ÀÇ Æ÷ÀÎÅÍ¿Í ¿ÏÀüÈ÷ ´Ù¸¥ °ÍÀÌ´Ù.

2-1.list ÅÛÇø´ Ŭ·¡½º ; ÀÌÁß ¿¬°á ¸ñ·ÏÀ» ´ëÇ¥
¸ñ·ÏÀÇ ¾î¶² À§Ä¡¿¡¼­µµ ¿ø¼ÒÀÇ °íÁ¤ ½Ã°£ »ðÀÔ°ú »èÁ¦¸¦ Á¦°øÇϸç,
vertor¿Í ´Þ¸® ¹è¿­ Ç¥±â¿Í ÀÓÀÇ Á¢±ÙÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù.
-2.Vector °´Ã¼¸¦ »ç¿ëÇÏ¿© ¹üÀ§¸¦ Á¦°øÇÏ°í set °´Ã¼¸¦ »ç¿ëÇÏ¿© ¼¿ ´ÜÀ§ÀÇ ¸ñ·ÏÀ» Á¦°øÇÒ ¼ö ÀÖ´Ù.

3-1.deque ÅÛÇø´ Ŭ·¡½º
-2.dequeÀÇ µ¿ÀÛÀº ´ÙÀ½°ú °°Àº °æ¿ì¿¡´Â vector¿Í ´Ù¸£´Ù.
1)deque´Â ¿ë·®¿¡ °üÇÑ ÇÔ¼öµéÀ» Á¦°øÇÏÁö ¾Ê´Â´Ù.(capacity()¿Í reserve())
2)deque´Â ¾ÕºÎºÐ°ú ³¡ºÎºÐ¿¡ Á÷Á¢ÀûÀ¸·Î ¿ø¼Ò¸¦ Ãß°¡, »èÁ¦ÇÒ ¼ö ÀÖ´Â ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù.(push_front()¿Í pop_front())

Ç¥ÁØ STL ¿¬°ü(assosiative) ÄÁÅ×ÀÌ³Ê #

0.set, multiset, map, multimap

0-1.¿¬°ü ÄÁÅ×À̳ÊÀÇ ÀÚµ¿ Á¤·ÄÀÇ °¡Àå Å« ÀåÁ¡; ¿ø¼ÒµéÀ» °Ë»öÇÒ °æ¿ì¿¡ ÁÁÀº ¼º´ÉÀ» ¹ßÈÖ
¿¬°ü ÄÁÅ×À̳ʴ ÀϹÝÀûÀ¸·Î ¹ÙÀ̳ʸ® Æ®¸®(binary tree)ó·³ ±¸ÇöµÇ¾î ÀÖ´Ù. ±×·¯¹Ç·Î ¸ðµç ¿ø¼Ò(¸ðµç ³ëµå)µéÀº ÇϳªÀÇ ºÎ¸ð(parent)¿Í µÎ °³ÀÇ ÀÚ½Ä(children)À» °¡Áø´Ù.

auto_ptr #

0.Ã¥¿¡ ÀÖ´Â ³»¿ëÀ̶ó Âü°í¸¸ ÇÒ °Í!
*.auto_ptrÀº ÀÚ½ÅÀÌ °¡¸®Å°´Â °´Ã¼¿¡ ´ëÇÑ ¼ÒÀ¯Àڷμ­ ÇൿÇÏ´Â Æ÷ÀÎÅÍÀÌ´Ù.
°á°úÀûÀ¸·Î, auto_ptrÀÌ Æı«µÈ´Ù¸é ¼ÒÀ¯ÇÏ°í ÀÖ´ø °´Ã¼µµ ÀÚµ¿À¸·Î Æı«µÇ´Â °ÍÀÌ´Ù. new·Î ÇÒ´çµÈ ¸Þ¸ð¸®¸¦ °ü¸®Çϱ⠽±°Ô ÇØÁØ´Ù.

#include "memory.h"
void demo1
{
	double * pd = new double;  	// µ¿ÀûÇÒ´ç(new¿¡ ÀÇÇØ ÇÒ´çµÈ ¸Þ¸ð¸®¿¡¸¸ »ç¿ë)
	'* pd = 25.5;	
	delete pd;			// ¸Þ¸ð¸® ÇØÁ¦		
	return;
}

void demo2
{
	auto_ptr<double> ap (new double);	
  	'* ap = 25.5;
 	return;				// ¸Þ¸ð¸® ÀÚµ¿ÇØÁ¦
}
auto_ptrÀº new/ delete¿Í ¦À» ÀÌ·ë

auto_ptr<double> pd;
double * p_reg = new double;
pd = p_reg; // Çã¿ëµÇÁö ¾ÊÀ½(¾Ï½ÃÀû º¯È¯)
pd = auto_ptr<double>(p_reg); // Çã¿ëµÊ(¸í½ÃÀû º¯È¯)
auto_ptr<double> pauto = pd; // Çã¿ëµÇÁö ¾ÊÀ½(¾Ï½ÃÀû º¯È¯)
auto_ptr<double> pauto(pd); // È£¿ëµÊ(¾Ï½ÃÀû º¯È¯)


{_r} ¸Þ¸ðÀåÀ¸·Î °¡±â

November, 2024
 12
3456789
10111213141516
17181920212223
24252627282930

"¹Ùº¸¾ß!"

¸Þ¸ðÀå_Design
HomepageTemplate
½Å¿ë_¸ñÇ¥¾ø´ÂÇà¿î_¶ÇÇѹøÀÇÀç¾ÓÀ»³º´ÂÀ§±â
Ã¥°¥ÇÇ_AI(¼º³É°©À¸·Î...)
last modified 2005-05-04 13:05:33
°íÄ¡±â|ã±â|ÂÊ Áö¿ì±â|ºñ½ÁÇÑ ÂÊ Valid XHTML 1.0! Valid CSS! powerd by MoniWiki
0.0151 sec