VC 6.0¿¡¼ STLÀ» »ç¿ëÇÒ·Á¸é ´ÙÀ½°ú °°Àº Äڵ带 Æ÷ÇÔ ½ÃÄÑ¾ß ÇÑ´Ù.
#pragma warning(disable:4786)
#include <algorithm> #include <vector> #include
<iostream> #include <string> #include
<map>
using namespace std;
|
VC°¡ ¾Æ´Ï¶ó¸é ù ¹ø° ¶óÀÎÀº Á¦¿Ü ½ÃÄѵµ ÁÁ´Ù.
1. ¼±¾ð
struct TEST_ST { int
index; float
k; };
vector<TEST_ST> g_vector;
|
vector<TEST_ST> g_vector(100)
ó·³ »çÀÌÁ ¹Ì¸® ¼ÂÆÃÇÏ°Ô µÇ¸é ¼Óµµ°¡ Á¶±Ý ´õ ºü¸¦°ÍÀÌ´Ù.
2. ÀÔ·Â
TEST_ST
data; data.index
= 0; data.k
= 7777;
g_vector.push_back(data);
|
º¤ÅÍ ³»ºÎ »ý¼ºÀÚ¿¡¼ µ¥ÀÌÅÍ Çü ¸¸Å new·Î ÇÒ´çÇϱ⠶§¹®¿¡ new·Î
»ý¼ºÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ³»°¡ óÀ½¿¡ STLÇÒ ¶§ »ý¼ºÀÚ¿¡ vector¿¡
µé¾î°¥ µ¥ÀÌÅ͸¦ ¸¸µé¾îÁÖ°í ¼Ò¸êÀÚ¿¡¼ vectorÀÇ µ¥ÀÌÅ͸¦ ´Ù½Ã
¼Ò¸ê½ÃÅ°´Â ¹Ùº¸ °°Àº ÁþÀ» Çß´øÀûÀÌ ÀÖ´Ù.
push_back ÇÏ°Ô ¸¶Áö¸· ¹è¿¿¡ ÀúÀåµÉ °ÍÀÌ´Ù.
3. »ç¿ë¹æ¹ý
vector<TEST_ST>::iterator
iterator;
for(iterator
= g_vector.begin(); iterator != g_vector.end(); iterator++) printf("test
%d \n", iterator->k);
|
¹Ýº¹ÀÚ¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ´Ù. STL¿¡¼ end()´Â ¸¶Áö¸· µ¥ÀÌÅ͸¦ Áö³ª°£
°ÍÀÌ´Ï Á¶½ÉÇؾßÇÑ´Ù.
int
iSize = g_vector.size();
for(int
i = 0; i < iSize; i++) printf("test
%d \n", g_vector[i].k);
|
µÎ ¹ø° »ç¿ë¹æ¹ýÀº ¹è¿Ã³·³ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ´Ù. 4. ¼Ò¸ê
¾îÂ¥ÇÇ ±×³É µÎ´õ¶óµµ ÀÚµ¿¼Ò¸êµÇÁö¸¸ ¸Þ¸ð¸®¸¦ È®º¸Çϱâ À§Çؼ
¸ðµÎ ¼Ò¸ê ½ÃÅ°°í ½Í´Ù¸é clear() ÇÑ´Ù.
5. ƯÁ¤Áö¿ª »èÁ¦
//
ÀÔ·Â for(int
k = 0; k < 100; k++) { TEST_ST
data; data.index
= 0; data.k
= k;
g_vector.push_back(data); }
//
ƯÁ¤Áö¿ª »èÁ¦ printf("test
%d, size: %d \n", g_vector[55].k, g_vector.size());
vector<TEST_ST>::iterator
iterator; for(iterator
= g_vector.begin(); iterator != g_vector.end(); iterator++) { if(iterator->k
== 55) { g_vector.erase(iterator); } }
printf("test
%d, size: %d \n", g_vector[55].k, g_vector.size());
|
0ºÎÅÍ 99±îÁö µ¥ÀÌÅ͸¦ ³Ö¾úÀ» ¶§, ¿øÇÏ´Â ¿µ¿ªÀÇ µ¥ÀÌÅ͸¦ »èÁ¦ÇÏ°í
½Í´Ù¸é erase()·Î »èÁ¦ÇÑ´Ù. k°¡ 55ÀÎ µ¥ÀÌÅ͸¦ »èÁ¦ÇÑ´Ù¸é µÚ¿¡
ÀÖ´ø µ¥ÀÌÅÍÀÇ ¹è¿µéÀÌ ÇÑľ¿ ¾ÕÀ¸·Î ´ç°ÜÁ® ¿Â´Ù. Å©±âµµ Çϳª
ÁÙ¾îµç´Ù.
Çش翵¿ªÀÇ »èÁ¦½Ã ÁÖÀÇÇÒ Á¡Àº ¾ÕÀ¸·Î ´ç°Ü¿À´Â °ÍÀ»
°¨¾ÈÇØ¾ß Çϱ⠶§¹®¿¡, µÚ¿¡¼ »èÁ¦ÇØ¾ß ÇÒ°ÍÀÌ´Ù. À©µµ¿ì APIÀÇ
¸®½ºÆ® »èÁ¦ÇÏ°í ºñ½ÁÇÏ°Ô ÀÛµ¿ÇÑ´Ù.
»èÁ¦ÈÄ °á°ú´Â ´ÙÀ½°ú °°´Ù.
test 55, size: 100 test 56, size: 99
|
[Æß]
http://www.xraylith.wisc.edu/~khan/software/stl/STL.newbie.html http://www.cs.fiu.edu/~weiss/dsaa_c++/code/
|