41-2.¸Ê

41-2-°¡.¸Ê

¼ÂÀÌ Å°ÀÇ ÁýÇÕ¸¸À» °ü¸®Çϴµ¥ ºñÇØ ¸ÊÀº Ű¿Í °ªÀÇ ½ÖÀ» °ü¸®ÇÑ´Ù. ¿¬°üÀÌ ÀÖ´Â µÎ °³ÀÇ °ªÀ» ½ÖÀ¸·Î °ü¸®ÇÑ´Ù´Â Á¡¿¡¼­ ÁøÁ¤ÇÑ ¿¬°ü ÄÁÅ×À̳ʶó°í ÇÒ ¼ö ÀÖ´Ù. ¼Â°ú ¸¶Âù°¡Áö·Î Á¤·ÄµÈ »óÅ·Π¿ä¼Ò¸¦ ÀúÀåÇϹǷΠ۰ªÀ¸·Î ºü¸£°Ô °Ë»öÇÒ ¼ö ÀÖ´Ù. ¼Â¿¡ ºñÇØ °ªÀ» Ãß°¡·Î °¡Áø´Ù´Â Â÷ÀÌÁ¡ÀÌ Àִµ¥ ¹Ý´ë·Î Ç¥ÇöÇÏ¸é ¼ÂÀº °ªÀ» °¡ÁöÁö ¾Ê´Â ¸ÊÀ̶ó°íµµ ÇÒ ¼ö ÀÖ´Ù.

µÎ ÄÁÅ×ÀÌ³Ê ¸ðµÎ ۸¦ Á¤·Ä ¹× °Ë»öÀÇ ±âÁØÀ¸·Î »ç¿ëÇÑ´Ù. ±×·¯³ª °ªÀº ´Ü¼øÈ÷ Ű¿Í ÇÔ²² °°ÀÌ ÀúÀåµÇ±â¸¸ ÇÒ »ÓÀÌÁö ¸ÊÀÇ ³»ºÎÀûÀÎ ±¸¼ºÀ̳ª °ü¸® ¹æ¹ý¿¡´Â ÀüÇô ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê´Â´Ù. ´Ü¼ø ¸ÊÀº ŰÀÇ Áߺ¹À» Çã¶ôÇÏÁö ¾ÊÀ¸¹Ç·Î ÇÑ Å°¿¡ ´ëÇØ Çϳª¸¸ ÀúÀåÇÒ ¼ö Àִµ¥ ºñÇØ ¸ÖƼ ¸ÊÀº ŰÀÇ Áߺ¹À» Çã¿ëÇϹǷΠ¿©·¯ °³ÀÇ Å°¸¦ ÀúÀåÇÒ ¼ö ÀÖ´Ù. ¸ÊÀº ¿¬°üÀÖ´Â µ¥ÀÌÅÍÀÇ °ü°è¸¦ Ç¥ÇöÇϴµ¥ ÁÖ·Î »ç¿ëµÈ´Ù.

¿¹¸¦ µé¾î Áֹεî·Ï¹øÈ£¿Í »ç¶÷ À̸§°úÀÇ °ü°è¸¦ µé ¼ö Àִµ¥ ÀÌ µÑÀº ÀÏ´ëÀÏ·Î ´ëÀÀµÇ¹Ç·Î ÇϳªÀÇ ½ÖÀ¸·Î º¼ ¼ö ÀÖ´Ù. ¹øÈ£¸¦ Ű·Î, À̸§À» °ªÀ¸·Î ÇÏ¿© ÇϳªÀÇ Â¦À¸·Î ¹­¾î¼­ ¸Ê¿¡ Á¤·ÄµÈ »óÅ·ΠÀúÀåÇÏ¸é ¹øÈ£·ÎºÎÅÍ À̸§À» ºü¸£°Ô °Ë»öÇÒ ¼ö ÀÖ´Ù. Áֹεî·Ï¹øÈ£´Â Áߺ¹µÇ¾î¼­´Â ¾ÈµÇ¹Ç·Î Áߺ¹À» Çã¶ôÇÏÁö ¾Ê´Â ¸ÊÀ¸·Î ÀÌ °ü°è¸¦ Ç¥ÇöÇÑ´Ù.

¸¸¾à ¹øÈ£¿Í À̸§ÀÇ ¿ªÇÒÀ» ¹Ù²Ù¾î À̸§ÀÌ Å°°¡ µÇ°í ¹øÈ£°¡ °ªÀÌ µÈ´Ù¸é À̶§´Â ¸ÖƼ¸ÊÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. ¿Ö³ÄÇÏ¸é »ç¶÷Àº µ¿¸íÀÌÀÎÀÌ Á¸ÀçÇÒ ¼ö ÀÖÀ¸¹Ç·Î À̸§ÀÌ °°´õ¶óµµ »ðÀÔ °¡´ÉÇØ¾ß Çϱ⠶§¹®ÀÌ´Ù. ÀÌ °æ¿ì´Â À̸§À» Ű·Î ÇÏ¿© Áֹεî·Ï¹øÈ£¸¦ ºü¸£°Ô °Ë»öÇÒ ¼ö ÀÖµÇ ¿©·¯ °³ÀÇ °á°ú°¡ ³ª¿Ã ¼ö ÀÖ´Ù.

¸ÊÀº ¿¬°üÀÌ ÀÖ´Â µÎ µ¥ÀÌÅÍÀÇ ½ÖÀ» °ü¸®ÇϹǷΠ¼Âº¸´Ù´Â ÈξÀ ´õ ½Ç¿ëÀûÀÌ´Ù. STL ÄÁÅ×ÀÌ³Ê Áß¿¡ º¤ÅÍ ´ÙÀ½À¸·Î ÀÚÁÖ »ç¿ëµÇ´Â ÄÁÅ×À̳ʰ¡ ¸ÊÀ̸ç Àß È°¿ëÇÏ¸é ¾ÆÁÖ º¹ÀâÇÑ ÀÛ¾÷À» ªÀº ÄÚµå·Î ºü¸¥ ½Ã°£¾È¿¡ ³¡³¾ ¼ö ÀÖ´Ù.

¸Ê Ŭ·¡½º

¸Êµµ ¿©Å¸ÀÇ STL ÄÁÅ×ÀÌ³Ê¿Í ¸¶Âù°¡Áö·Î ´ÙÀ½°ú °°Àº Ŭ·¡½º ÅÛÇø´À¸·Î Á¤ÀǵǾî ÀÖ´Ù. ¸ÖƼ ¸Êµµ À̸§¸¸ ´Ù¸¦ »Ó Ŭ·¡½º Á¤ÀÇ´Â ¸Ê°ú µ¿ÀÏÇÏ´Ù.

 

template<class Key, class T, class BinPred = less<Key>, class A = allocator<T> >

class map { ... }

 

¼Âº¸´Ù ÇϳªÀÇ Àμö¸¦ ´õ ÃëÇϴµ¥ Ű ¿Ü¿¡ µ¥ÀÌÅÍ¿¡ ÇØ´çÇÏ´Â °ªÀÇ Å¸ÀÔÀ» µÎ ¹øÂ° Àμö·Î ¿ä±¸ÇÑ´Ù. ³ª¸ÓÁö ºñ±³ ÇÔ¼ö °´Ã¼³ª ÇÒ´ç±â´Â ¼Â°ú µ¿ÀÏÇÏ¸ç µðÆúÆ®°¡ ¹«³­ÇÏ°Ô ÁöÁ¤µÇ¾î ÀÖÀ¸¹Ç·Î »ý·« °¡´ÉÇÏ´Ù. ºñ±³ ÇÔ¼öÀÇ µðÆúÆ®´Â lessÀ̹ǷΠ¸ÊÀÇ ¿ä¼ÒµéÀº ŰÀÇ °ªÀ» ±âÁØÀ¸·Î ¿À¸§Â÷¼øÀ¸·Î Á¤·ÄµÇ¾î ÀúÀåµÈ´Ù. Ű¿Í °ªÀÇ Å¸ÀÔÀº µðÆúÆ®°¡ ¾øÀ¸¹Ç·Î ¹Ýµå½Ã ÁöÁ¤ÇØ¾ß ÇÑ´Ù. ÀÓÀÇÀÇ ¸ðµç ŸÀÔÀ» Á¶ÇÕÇÏ¿© ÁöÁ¤ÇÒ ¼ö Àִµ¥ Á¤¼ö¿Í ¹®ÀÚ¿­, ¹®ÀÚ¿­°ú Á¤¼ö, Á¤¼ö¿Í ½Ç¼ö µîµîÀÌ °¡´ÉÇϸç Á¶°Ç¸¸ ¸Â´Ù¸é »ç¿ëÀÚ Á¤ÀÇ Å¸ÀÔµµ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. µÎ ŸÀÔÀÌ ²À ´Ù¸¦ ÇÊ¿ä´Â ¾øÀ¸¸ç °°¾Æµµ »ó°ü¾ø´Ù.

¸ÊÀÌ Á¤ÀÇÇϴ ŸÀÔÀº ¼Â°ú µ¿ÀÏÇ쵂 key_type°ú value_typeÀÌ ´Ù¸£°Ô Á¤ÀǵǾî ÀÖÀ¸¸ç key_compare¿Í value_compareµµ ´Ù¸¥ ÇÔ¼ö °´Ã¼ÀÌ´Ù. ¼ÂÀº ۸¸ ÀÖ°í ۰¡ °ªÀ» °âÇÏ´Â °ÍÀ¸·Î Ãë±ÞÇϹǷΠvalue_typeÀÌ key_type°ú °°Áö¸¸ ¸ÊÀº ÀÌ µÑÀÌ °¢°¢ µû·ÎÀ̹ǷΠ´Ù¸¥ ŸÀÔÀÌ´Ù. ¸ÊÀÇ value_typeÀº Ű¿Í °ªÀÇ pairŸÀÔÀ¸·Î Á¤ÀǵǸç value_compare´Â ۰ª¸¸À¸·Î ºñ±³¸¦ ¼öÇàÇÏ´Â ÇÔ¼ö °´Ã¼ ŸÀÔÀÌ´Ù. ¸ÊÀÇ »ý¼ºÀÚ´Â ¼ÂÀÇ »ý¼ºÀÚ¿Í ¿ÏÀüÈ÷ µ¿ÀÏÇÏ´Ù.

 

explicit map(const BinPred& comp = BinPred());

map(const map& x);

map(InIt first, InIt last, const BinPred& comp = BinPred());

 

µðÆúÆ® »ý¼ºÀÚ·Î ºó ¸ÊÀ» ¸¸µé ¼öµµ ÀÖ°í º¹»ç »ý¼ºÀÚ¸¦ »ç¿ëÇÏ¿© ÀÌ¹Ì Á¸ÀçÇÏ´Â ¸ÊÀ» º¹»çÇÒ ¼öµµ ÀÖ´Ù. ¼¼ ¹øÂ° »ý¼ºÀÚ´Â ¹Ýº¹ÀÚ ±¸°£À¸·ÎºÎÅÍ ¸ÊÀ» »ý¼ºÇϴµ¥ ´Ù¸¥ ÄÁÅ×À̳ÊÀÇ ±¸°£À¸·ÎºÎÅÍ »ý¼º°¡´ÉÇÏ´Ù. ±×·¯³ª ŸÀÔÀÌ Å°¿Í °ªÀ» ½ÖÀ¸·Î °¡Áö´Â pair¿©¾ß ÇϹǷΠ½ÇÁ¦·Î´Â °°Àº ŸÀÔÀÇ ¸Ê³¢¸®¸¸ ±¸°£ º¹»ç°¡ °¡´ÉÇÏ´Ù°í ÇÒ ¼ö ÀÖ´Ù. ±¸°£ º¹»ç½Ã Á¤·ÄµÇ¾î µé¾î°¡¸ç ¸ÖƼ ¸ÊÀÌ ¾Æ´Ï¸é Áߺ¹µÈ Ű´Â ÇÑ ¹ø¸¸ »ðÀԵȴÙ.

¸ÊÀÇ ¹Ýº¹ÀÚ´Â ¼Â°ú ¸¶Âù°¡Áö·Î ¾ç¹æÇ⠹ݺ¹ÀÚÀÌ´Ù. ¾îÂ÷ÇÇ Á¤·ÄµÇ¾î »ðÀÔµÇ¸ç ¸â¹ö ÇÔ¼öµéÀÌ ºü¸¥ ¼Óµµ·Î °Ë»öÀ» ¼öÇàÇϹǷΠ±»ÀÌ ÀÓÀÇ Á¢±Ù ¹Ýº¹ÀÚ°¡ ÇÊ¿äÄ¡ ¾Ê´Ù.

»ðÀÔ, »èÁ¦

¸Ê¿¡ ¿ä¼Ò¸¦ Ãß°¡ÇÒ ¶§´Â insert ÇÔ¼ö¸¦ »ç¿ëÇϴµ¥ ¼Â°ú ¿øÇüÀÌ ¿ÏÀüÈ÷ ÀÏÄ¡ÇÑ´Ù. »ý¼ºÀÚµµ ¸¶Âù°¡ÁöÀÌ¸ç ¾ÕÀ¸·Î ¾Ë¾Æº¼ ´ëºÎºÐÀÇ ¸â¹ö ÇÔ¼öµéÀÌ ¼Â°ú µ¿ÀÏÇѵ¥ µÑ ´Ù ¿¬°ü ÄÁÅ×À̳ʶó´Â ¸é¿¡¼­ °øÅëÀûÀ̹ǷΠÀÎÅÍÆäÀ̽º°¡ µ¿ÀÏÇÒ ¼ö¹Û¿¡ ¾ø´Ù.

 

pair<iterator, bool> insert(const value_type& val);

iterator insert(iterator it, const value_type& val);

void insert((iterator first, iterator last);

 

¸Ê¿¡ »ðÀԵǴ ¿ä¼ÒÀÇ Å¸ÀÔÀÎ value_typeÀº Ű¿Í °ªÀ» ½ÖÀ¸·Î °¡Áö´Â pair°´Ã¼¿©¾ß ÇÑ´Ù. ¹Ì¸® pair °´Ã¼¸¦ ÁغñÇØ ³õ°í »ðÀÔÇÒ ¼öµµ ÀÖ°ÚÁö¸¸ º¸ÅëÀº pairÀÇ »ý¼ºÀÚ¸¦ È£ÃâÇÏ¿© Àӽà pair°´Ã¼¸¦ ¸¸µé¾î °ð¹Ù·Î ¸Ê¿¡°Ô Àü´ÞÇÑ´Ù. ¿¹¸¦ µé¾î ¹®ÀÚ¿­°ú Á¤¼öÀÇ ½ÖÀ» »ðÀÔÇÑ´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.

 

m.insert(pair<string, int>("¹®ÀÚ¿­",1234));

 

Ű´Â "¹®ÀÚ¿­"ÀÌ°í °ªÀº 1234ÀÎ ¿ä¼Ò Çϳª°¡ ¸Ê¿¡ »ðÀ﵃ °ÍÀÌ´Ù. »ðÀÔµÈ À§Ä¡¸¦ °¡¸®Å°´Â ¹Ýº¹ÀÚ¿Í ¼º°ø ¿©ºÎ¸¦ Ç¥½ÃÇÏ´Â bool°ªÀÌ pair·Î ¹­¿©¼­ ¸®ÅϵǸç ۰¡ ÀÌ¹Ì Á¸ÀçÇÏ¸é »ðÀÔÀº °ÅºÎµÈ´Ù. ´Ü, ¸ÖƼ ¸ÊÀº ŰÀÇ Áߺ¹ÀÌ °¡´ÉÇϹǷΠinsert ÇÔ¼ö°¡ boolÀ» ¸®ÅÏÇÒ ÇÊ¿ä¾øÀÌ ¹Ýº¹ÀÚ¸¸ ¸®ÅÏÇÑ´Ù.

µÎ ¹øÂ° ¿øÇüÀÇ insert ÇÔ¼ö´Â »ðÀÔ À§Ä¡¿¡ ´ëÇÑ ÈùÆ®¸¦ Á¦°øÇÏ¸ç ¼¼ ¹øÂ° insert ÇÔ¼ö´Â ¹Ýº¹ÀÚ ±¸°£À» »ðÀÔÇÑ´Ù. »ðÀԵǴ ¿ä¼Ò°¡ pair¶ó´Â °Í¸¸ »©°í »ç¿ë ¹æ¹ýÀº ¼ÂÀÇ insert ÇÔ¼ö¿Í ¿ÏÀüÈ÷ µ¿ÀÏÇÏ´Ù. ¸ÊÀº insert ÇÔ¼ö¿Ü¿¡ Á» ´õ Æí¸®ÇÑ »ðÀÔ ¹æ¹ýÀ» Á¦°øÇϴµ¥ [ ] ¿¬»êÀÚ¿Í ´ëÀÔ ¿¬»êÀڷεµ ¿ä¼Ò¸¦ »ðÀÔÇÒ ¼ö ÀÖ´Ù. ¸ÊÀÇ [ ] ¿¬»êÀÚ´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀǵǾî ÀÖ´Ù.

 

T& operator[](const Key& k);

 

[ ] ¿¬»êÀÚ´Â Àμö·Î Àü´ÞµÈ k¸¦ Ű·Î °¡Áö´Â pair °´Ã¼¸¦ »ý¼ºÇÏ¿© ¸Ê¿¡ »ðÀÔÇϰí ÀÌ pairÀÇ °ª(pair.second)¿¡ ´ëÇÑ ·¹ÆÛ·±½º¸¦ ¸®ÅÏÇÑ´Ù. ·¹ÆÛ·±½º¿¡ °ªÀ» °ð¹Ù·Î ´ëÀÔÇϱ⸸ ÇÏ¸é ¹æ±Ý »ðÀÔÇÑ ¿ä¼ÒÀÇ °ªÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. [ ] ¿¬»êÀÚ¿Í ´ëÀÔ ¿¬»êÀÚ¸¦ »ç¿ëÇϸé [ ] ¿¬»êÀھȿ¡ ۸¦ ÁöÁ¤ÇÏ°í ´ëÀÔ¹®ÀÇ ¿À¸¥ÂÊ¿¡ °ªÀ» ÀûÀ¸¸é ½±°Ô »ðÀÔÇÒ ¼ö ÀÖ´Ù. ¾Õ¿¡¼­ º¸ÀÎ insert¹®Àº ´ÙÀ½ ´ëÀÔ¹®°ú µ¿ÀÏÇÏ´Ù.

 

m["¹®ÀÚ¿­"]=1234;

 

pair °´Ã¼¸¦ ¸¸µé ÇÊ¿ä¾øÀÌ Å°¿Í °ªÀ» °ð¹Ù·Î ÁöÁ¤ÇÒ ¼ö ÀÖ¾î ÈξÀ ´õ Æí¸®ÇÏ°í º¸±â¿¡µµ ÁÁ´Ù. ¶ÇÇÑ ÀÌ ¿¬»êÀÚ´Â ÀÌ¹Ì »ðÀԵǾî ÀÖ´Â ¿ä¼ÒÀÇ °ªÀ» ¼öÁ¤ÇÒ ¶§µµ »ç¿ëÇÒ ¼ö Àִµ¥ ¼öÁ¤ÇÏ´Â ¹æ¹ýÀº Àá½Ã ÈÄ¿¡ µû·Î ¿¬±¸ÇØ º¸ÀÚ. ÀÌ ¿¬»êÀÚ´Â ¸Ê¿¡ ÀÇÇØ ¿À¹ö·ÎµùµÇ¾î ÀÖÀ¸¹Ç·Î ¹è¿­ÀÇ Ã·ÀÚ ¿¬»êÀÚÀÎ [ ]¿Í´Â Àǹ̰¡ ¿ÏÀüÈ÷ ´Ù¸£´Ù. ¹è¿­ÀÇ ¿ä¼Ò¸¦ Àд [ ] ¿¬»êÀÚ´Â ÇÇ¿¬»êÀÚ·Î Á¤¼ö¸¸ ÃëÇÒ ¼ö ÀÖÁö¸¸ ¸ÊÀÇ [ ] ¿¬»êÀڴ ŰÀÇ Å¸ÀÔÀ¸·Î ÁöÁ¤µÈ ŸÀÔÀ» ÃëÇϹǷΠÁ¤¼ö°¡ ¾Æ´Ñ ¹®ÀÚ¿­À̳ª ½Ç¼ö¸¦ ÇÇ¿¬»êÀÚ·Î ¹ÞÀ» ¼öµµ ÀÖ´Ù.

´Ü, [ ] ¿¬»êÀÚ´Â ¸Ê¿¡¸¸ Á¤ÀǵǾî ÀÖÀ¸¸ç ¸ÖƼ ¸Ê¿¡´Â Á¤ÀǵǾî ÀÖÁö ¾Ê´Ù. [ ] ¿¬»êÀÚ°¡ °ªÀÇ ¼öÁ¤¿¡µµ »ç¿ëµÇ´Âµ¥ ۰¡ Áߺ¹µÇ¾î ÀÖÀ» °æ¿ì ¾î¶² Ű¿¡ ´ëÇÑ °ªÀ» ¸®ÅÏÇØ¾ß ÇÒ Áö°¡ ¾Ö¸ÅÇϱ⠶§¹®ÀÌ´Ù. Ű¿¡ ÇØ´çÇÏ´Â ¿ä¼Ò°¡ ¿©·¯ °³ ÀÖ´Ù°í ÇØ¼­ º¹¼ö °³ÀÇ °ª¿¡ ´ëÇÑ ·¹ÆÛ·±½º¸¦ ¸®ÅÏÇÒ ¼ö´Â ¾ø´Ù. ±×·¡¼­ ¸ÖƼ ¸Ê¿¡¼­´Â °ªÀ» »ðÀÔÇÒ ¶§ insert ÇÔ¼ö¸¸ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç ¼öÁ¤ÇÒ ¶§µµ °Ë»ö ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.

¿ä¼Ò¸¦ »èÁ¦ÇÒ ¶§´Â erase ÇÔ¼ö¸¦ »ç¿ëÇϴµ¥ ÀÌ ÇÔ¼öµµ ¼Â°ú ¿ÏÀüÈ÷ ÀÏÄ¡ÇÑ´Ù. ¹Ýº¹ÀÚ°¡ ÁöÁ¤ÇÑ ¿ä¼Ò Çϳª, ¹Ýº¹ÀÚ ±¸°£ÀÇ ¸ðµç ¿ä¼Ò, ƯÁ¤ÇÑ Å°¸¦ °¡Áö´Â ¿ä¼Ò¸¦ »èÁ¦ÇÒ ¼ö ÀÖ´Ù. ¸ÖƼ ¸ÊÀÇ °æ¿ì ۸¦ °¡Áø ¿ä¼Ò°¡ ¿©·¯ °³ ¹ß°ßµÇ¸é ÀüºÎ »èÁ¦µÈ´Ù.

 

iterator erase(iterator it);

iterator erase(iterator first, iterator last);

size_type erase(const Key& key);

 

´ÙÀ½ ¿¹Á¦´Â µµ½Ã¸í°ú Àα¸¼öÀÇ ½ÖÀ» °ü¸®ÇÏ´Â ¸ÊÀ» ÀÛ¼ºÇÏ°í »ý¼º, »ðÀÔ, »èÁ¦, ¼øÈ¸ Å×½ºÆ®¸¦ ÇÑ´Ù.

 

¿¹ Á¦ : citypopu

#include <iostream>

#include <string>

#include <map>

using namespace std;

 

void main()

{

     map<string,int> m;

     m.insert(pair<string,int>(string("¼­¿ï"),1000));

     m.insert(pair<string,int>("ºÎ»ê",500));

     m["´ëÀü"]=400;

     m["´ë±¸"]=300;

     m["±¤ÁÖ"]=200;

     m["ÀÎõ"]=100;

     m["µ¶µµ"]=1;

 

     m.erase(m.begin());

     m.erase("ÀÎõ");

 

     map<string,int>::iterator it;

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

          cout << it->first << ":" << it->second << "¸¸¸í" << endl;

     }

}

 

µµ½Ã¸íÀ» Ű·Î »ç¿ëÇϹǷΠŰÀÇ Å¸ÀÔÀº stringÀ̸ç Àα¸¼öÀÎ °ªÀº Á¤¼öÇüÀ¸·Î Ç¥ÇöµÇ¹Ç·Î ŸÀÔÀº intÀÌ´Ù. ÀÌ·± µ¥ÀÌÅÍÀÇ ½ÖÀ» °ü¸®ÇÏ´Â ¸ÊÀÇ Å¸ÀÔÀº map<string, int>°¡ µÈ´Ù. ÀÌ Å¸ÀÔÀÇ ¸Ê mÀ» µðÆúÆ® »ý¼ºÀÚ·Î ¼±¾ðÇÏ¿© ºó ¸ÊÀ» ÁغñÇß´Ù. ¸ÊÀº »ðÀÔ ¹æ¹ýÀÌ Á¶±Ý º¹ÀâÇϱ⠶§¹®¿¡ º¸Åë ºó »óÅ·Π»ý¼ºÇÑ´Ù.

»ý¼ºÇÑ ºó ¸Ê¿¡ µµ½Ã¸í°ú Àα¸¼öÀÇ Â¦À» »ðÀÔÇϴµ¥ insert ÇÔ¼ö¿Í [ ] ¿¬»êÀÚ¸¦ µÑ ´Ù »ç¿ëÇØ º¸¾Ò´Ù. ¼­¿ï°ú ºÎ»êÀº insert ÇÔ¼ö·Î »ðÀÔÇߴµ¥ ÀÌ ÇÔ¼öÀÇ Àμö·Î pair Àӽà °´Ã¼¸¦ »ý¼ºÇÏ¿© Àü´ÞÇÏ¸é µÈ´Ù. Ű´Â string ŸÀÔÀÌÁö¸¸ stringÀÌ ¹®ÀÚ¿­ »ó¼ö¿¡ ´ëÇÑ º¯È¯ »ý¼ºÀÚ¸¦ Á¦°øÇϹǷΠ¹®ÀÚ¿­ »ó¼ö¸¦ ¹Ù·Î ÁöÁ¤ÇÒ ¼öµµ ÀÖ´Ù.

³ª¸ÓÁö µµ½ÃµéÀº [ ] ¿¬»êÀÚ¸¦ »ç¿ëÇߴµ¥ insertº¸´Ù ÈξÀ ´õ º¸±â ÁÁ°í °£ÆíÇÏ´Ù. [ ] °ýÈ£¾È¿¡ µµ½Ã¸íÀ» Àû°í ´ëÀÔ¹®ÀÇ ¿ìº¯¿¡ ÀÌ µµ½ÃÀÇ Àα¸¼ö¸¦ ÁöÁ¤Çϸé ÀÌ µÑÀÌ pair·Î ¹­¿© ¸Ê¿¡ »ðÀԵȴÙ. 7°³ÀÇ µµ½Ã¸¦ »ðÀÔÇߴµ¥ µµ½Ã¸íÀ» Ű·Î ÇÏ¿© ¿À¸§Â÷¼øÀ¸·Î Á¤·ÄµÇ¾î µé¾î°¥ °ÍÀÌ´Ù.

erase ÇÔ¼ö¸¦ Å×½ºÆ®Çϱâ À§ÇØ ÀϺη¯ µÎ °³ÀÇ µµ½Ã¸¦ »èÁ¦ÇØ º¸±âµµ Çß´Ù. m.begin()À¸·Î ¸ÊÀÇ Ã¹ ¹øÂ° ¿ä¼Ò¸¦ ±¸ÇØ »èÁ¦Çߴµ¥ ¼­¿ïÀ» Á¦ÀÏ ¸ÕÀú »ðÀÔÇßÁö¸¸ Á¤·ÄµÇ¾î µé¾î°¡¹Ç·Î beginÀÌ ¸®ÅÏÇÏ´Â ¹Ýº¹ÀÚ´Â °¡³ª´Ù¼øÀ¸·Î °¡Àå ºü¸¥ ±¤ÁÖ¸¦ °¡¸®Å³ °ÍÀÌ´Ù. ÀÎõÀº ۰ªÀ» Á÷Á¢ ÁöÁ¤ÇÏ¿© »èÁ¦Çß´Ù. 7°³ »ðÀÔÇÏ°í µÎ °³¸¦ »èÁ¦ÇßÀ¸¹Ç·Î ¸Ê¿¡´Â ´Ù¼¸ °³¸¸ ³²´Â´Ù. ¹Ýº¹ÀÚ·Î ¸ÊÀ» ¼øÈ¸Çϸ鼭 Ű¿Í °ªÀ» Ãâ·ÂÇØ º¸¾Ò´Ù.

 

´ë±¸:300¸¸¸í

´ëÀü:400¸¸¸í

µ¶µµ:1¸¸¸í

ºÎ»ê:500¸¸¸í

¼­¿ï:1000¸¸¸í

 

it ¹Ýº¹ÀÚ´Â ¸ÊÀÇ ¿ä¼Ò Çϳª¸¦ °¡¸®Å°°í ÀÌ ¿ä¼Ò´Â ¹®ÀÚ¿­°ú Á¤¼öÀÇ pairÀ̹ǷΠ¹®ÀÚ¿­À» ÀÐÀ» ¶§´Â it°¡ °¡¸®Å°´Â °÷ÀÇ first¸¦ Àоî¾ß Çϸç Á¤¼ö¸¦ ÀÐÀ» ¶§´Â second¸¦ Àоî¾ß ÇÑ´Ù. pair ±¸Á¶Ã¼ÀÇ µÎ ¸â¹ö À̸§ÀÌ first, second·Î °íÁ¤µÇ¾î Àִµ¥ ¸ÊÀÇ ¿ä¼Ò´Â first°¡ ŰÀ̰í second°¡ °ªÀÌ´Ù.

°Ë»ö

¸ÊÀ» °Ë»öÇÒ ¶§´Â find ¸â¹ö ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù. »ó¼ö ¹öÀü°ú ºñ»ó¼ö ¹öÀüÀÌ Áߺ¹ Á¤ÀǵǾî ÀÖ´Ù.

 

iterator find(const Key& val);

const_iterator find(const Key& val) const;

 

Àμö·Î´Â °Ë»öÇϰíÀÚ Çϴ Ű¸¦ Àü´ÞÇÑ´Ù. find ¸â¹ö ÇÔ¼ö´Â ¸ÊÀÇ Á¤·Ä »óŸ¦ ½ÊºÐ Ȱ¿ëÇÏ¿© ºü¸¥ ¼Óµµ·Î ۰ªÀ» °¡Áø ¿ä¼Ò¸¦ ã¾Æ ±× ¹Ýº¹ÀÚ¸¦ ¸®ÅÏÇÑ´Ù. ¸¸¾à ۰¡ ¹ß°ßµÇÁö ¾ÊÀ¸¸é end°¡ ¸®ÅϵȴÙ.

 

¿¹ Á¦ : mapfind

#include <iostream>

#include <string>

#include <map>

#include <algorithm>

using namespace std;

 

void main()

{

     map<string,int> m;

     m["¼­¿ï"]=1000;m["ºÎ»ê"]=500;m["´ëÀü"]=400;m["´ë±¸"]=300;

     m["±¤ÁÖ"]=200;m["ÀÎõ"]=100;m["µ¶µµ"]=1;

 

     map<string,int>::iterator it;

     it=m.find("ºÎ»ê");

     if (it == m.end()) {

          cout << "¸Ê¿¡ ¾ø´Â µµ½ÃÀÔ´Ï´Ù." << endl;

     } else {

          cout << it->first << "ÀÇ Àα¸´Â " << it->second << "¸¸ ¸íÀÌ´Ù." << endl;

     }

}

 

µµ½Ã¸í°ú Àα¸¼öÀÇ ¸Ê¿¡¼­ ºÎ»êÀÇ Àα¸¼ö¸¦ °Ë»öÇØ º¸¾Ò´Ù. find ÇÔ¼öÀÇ Àμö·Î "ºÎ»ê" ¹®ÀÚ¿­À» Àü´ÞÇϸé ÀÌ Å°¸¦ °¡Áø ¿ä¼Ò°¡ ¸ÊÀÇ ¾îµðÂë¿¡ ÀÖ´ÂÁö À̺Р°Ë»öÀ¸·Î ã¾Æ³»¾î ±× ¹Ýº¹ÀÚ¸¦ ¸®ÅÏÇÑ´Ù. ¹Ýº¹ÀÚÀÇ second¸¦ ÀÐÀ¸¸é µµ½Ã¸í°ú ¿¬°üµÈ Àα¸¼ö¸¦ ¾Ë ¼ö ÀÖ´Ù. ¹®ÀÚ¿­·Î µÈ ۸¦ Á¦°øÇϰí Á¤¼ö°ªÀ» °Ë»öÇØ³½ °ÍÀÌ´Ù. ±×·¡¼­ ¸ÊÀ» ¹è¿­ÀÇ ÀϹÝÈ­¶ó°íµµ ÇÑ´Ù. ¹è¿­Àº ۰¡ Á¤¼ö·Î °íÁ¤µÇ¾î ÀÖ´Â ¸ÊÀÌ¸ç ¸ÊÀº ÀÓÀÇÀÇ Å¸ÀÔÀ» ÷ÀÚ·Î »ç¿ëÇÏ´Â ¹è¿­À̶ó°í ÇÒ ¼ö ÀÖ´Ù.

¸ÊÀÇ find ¸â¹ö ÇÔ¼ö´Â ÀÖÀ¸¸é ¾îµðÂë ÀÖ´Ù, ¾øÀ¸¸é ¾ø´Ù´Â È®Á¤ÀûÀÎ °á°ú¸¦ ¸®ÅÏÇϴµ¥ ºñÇØ ¸ÖƼ ¸ÊÀÇ find´Â ¿©·¯ °³ÀÇ ¿ä¼Ò Áß ¾î¶² °ÍÀ» °Ë»öÇÒÁö ¾Ë ¼ö ¾ø´Ù. Ű¿¡ ÇØ´çÇÏ´Â ¿ä¼Ò°¡ ¿©·¯ °³ ÀÖÀ» ¼ö Àִµ¥ ±× ÁßÀÇ Çϳª¸¦ °Ë»öÇÒ »ÓÀÌ´Ù. ¿©·¯ °³ÀÇ Å° Áß Ã³À½À̳ª ¸¶Áö¸· ÀÏÄ¡ÇÏ´Â ¿ä¼Ò¸¦ ã°í ½Í´Ù¸é lower_bound, upper_bound ¸â¹ö ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. ÀÌ·± Ư¼ºÀº ¼Â, ¸ÖƼ ¼Â°ú °°´Ù.

¸ÊÀ» °Ë»öÇÒ ¶§ Àü¿ª find ¾Ë°í¸®ÁòÀº »ç¿ëÇÒ ¼ö ¾ø´Ù. À§ ¿¹Á¦ÀÇ °Ë»ö Äڵ带 ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÑ ÈÄ ÄÄÆÄÀÏÇϸé ÄÄÆÄÀϵÇÁö ¾Ê´Â´Ù.

 

it=find(m.begin(),m.end(),"ºÎ»ê");

it=find(m.begin(),m.end(),pair<string,int>("ºÎ»ê",500));

 

"ºÎ»ê"À̶ó´Â ¹®ÀÚ¿­Àº ¸ÊÀÇ ¿ä¼Ò ŸÀÔ°ú Ʋ¸®¹Ç·Î ÄÄÆÄÀϵÇÁö ¾Ê´Â´Ù. ¸ÊÀÇ ¿ä¼Ò ŸÀÔÀº ¹®ÀÚ¿­°ú Á¤¼öÀÇ ½ÖÀÎ pair °´Ã¼ÀÌ´Ù. ±×·¸´Ù°í ÇØ¼­ ¾Æ·¡ÁÙó·³ pair °´Ã¼¸¦ ¸¸µé¾î °Ë»öÇØµµ ¿ª½Ã ¾ÈµÈ´Ù. ¿Ö³ÄÇϸé pair Ŭ·¡½º°¡ == ¿¬»êÀÚ¸¦ Á¦°øÇÏÁö ¾Ê±â ¶§¹®ÀÌ´Ù. ¼³»ç == ¿¬»êÀÚ¸¦ Á¦°øÇÑ´Ù ÇÏ´õ¶óµµ find ¾Ë°í¸®ÁòÀº Ű·ÎºÎÅÍ µ¿µî¼º ºñ±³¸¦ ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ¿ä¼Ò Àüü¿¡ ´ëÇÑ µ¿Àϼº ºñ±³¸¦ ÇϹǷΠ¾µ¸ð°¡ ¾ø´Ù.

À§ µÎ ¹øÂ° ÁÙÀÌ ¹®¹ýÀûÀ¸·Î °¡´ÉÇÏ´Ù°í ÇØ º¸ÀÚ. ÀÌ °Ë»öÀ» ÇÏ·Á¸é ºÎ»êÀÇ Àα¸°¡ 500À̶ó´Â °ÍÀ» ÀÌ¹Ì ¾Ë°í ÀÖ¾î¾ß ÇÑ´Ù´Â ¾ê±âÀε¥ ÀÌ¹Ì ¾Ë°í ÀÖ´Â Á¤º¸¸¦ °Ë»öÇÒ Çʿ䰡 ¹¹°¡ Àְڴ°¡? ¸ÊÀº Ű·ÎºÎÅÍ °ªÀ» °Ë»öÇÏ´Â ÄÁÅ×À̳ÊÀ̹ǷΠ۸¸À¸·Î °Ë»öÀ» ¼öÇàÇÒ ¼ö ÀÖ¾î¾ß ÇÏ¸ç ±×·¡¼­ ¹Ýµå½Ã find ¸â¹ö ÇÔ¼ö·Î °Ë»öÀ» ÇØ¾ß ÇÑ´Ù. À̹ø¿¡´Â ´ÙÀ½°ú °°ÀÌ °Ë»ö Äڵ带 ¼öÁ¤ÇØ º¸ÀÚ.

 

cout << "ºÎ»êÀÇ Àα¸´Â " << m["ºÎ»ê"] << "¸¸ ¸íÀÌ´Ù." << endl;

 

ÄÄÆÄÀϵµ Àß µÇ°í °á°úµµ Á¦´ë·Î ³ª¿Â´Ù. ±×·¯³ª ÀÌ ÄÚµå´Â Á¤È®ÇÑ °Ë»ö Äڵ尡 ¾Æ´Ò »Ó´õ·¯ ¾ÆÁÖ À§ÇèÇѵ¥ ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇØ º¸ÀÚ.

 

cout << "ÃáõÀÇ Àα¸´Â " << m["Ãáõ"] << "¸¸ ¸íÀÌ´Ù." << endl;

 

[ ] ¿¬»êÀÚÀÇ Á¤ÀÇ¿¡ ÀÇÇØ m["Ãáõ"] ¿¬»ê½ÄÀº ¸Ê¿¡ ÃáõÀÌ ÀÖ´ÂÁö º¸°í ¾øÀ¸¸é ÀÏ´Ü ÃáõÀ» ¸ÕÀú »ðÀÔÇÑ´Ù. À̶§ ۸¸ »ðÀÔÇÒ ¼ö´Â ¾øÀ¸¹Ç·Î °ª ŸÀÔÀÇ µðÆúÆ® »ý¼ºÀÚ·Î °ª±îÁö ¸¸µé¾î¼­ ³Ö°Ô µÇ´Âµ¥ mÀÇ °ª ŸÀÔÀº Á¤¼öÀ̹ǷΠint()ÀÇ °á°úÀÎ 0ÀÌ °ªÀ¸·Î ´ëÀ﵃ °ÍÀÌ´Ù. ±×¸®°í °ª¿¡ ´ëÇÑ ·¹ÆÛ·±½º°¡ ¸®ÅϵǴµ¥ ÀÌ °ªÀÌ ±×´ë·Î Ãâ·ÂµÇ¹Ç·Î Ãáõ¿¡ ¾Æ¹«µµ ¾È»ê´Ù´Â °ÅÁþ¸»À» ÇÏ°Ô µÈ´Ù.

Æò°¡¸¸ ÇØµµ »ðÀÔÀÌ µÇ¾î ¹ö·Á ´Ù¼Ò ºñ»ó½ÄÀûÀε¥ ÀÌ´Â [ ] ¿¬»êÀÚ°¡ °Ë»ö¿ëÀ¸·Î ¿À¹ö·ÎµùµÇ¾î ÀÖÁö ¾Ê°í Æí¸®ÇÑ »ðÀÔÀ» À§ÇØ ¿À¹ö·ÎµùµÇ¾î Àֱ⠶§¹®ÀÌ´Ù. ÀÌ ¿¬»êÀÚ·Î °Ë»öµµ ÇÒ ¼ö ÀÖ´Ù¸é ÁÁ°ÚÀ¸³ª ÇÑ ¿¬»êÀÚ·Î µÎ °¡Áö ÀÏÀ» ÇÒ ¼ö´Â ¾øÀ¸´Ï STL ¼³°èÀÚ´Â »ðÀÔÀ» ÇÏ´Â °ÍÀ¸·Î ¼±ÅÃÀ» ÇÑ °ÍÀÌ´Ù. µû¶ó¼­ ÀÌ ¿¬»êÀÚÀÇ Æ¯¼ºÀ» Àß ÀÌÇØÇϰí ÁÖÀÇÇÏ¿© »ç¿ëÇÏ´Â ¼ö¹Û¿¡ ¾ø´Ù.

¼öÁ¤

[ ] ¿¬»êÀڴ Ű°¡ ¾øÀ¸¸é »ðÀÔÇÏÁö¸¸ ÀÌ¹Ì Á¸ÀçÇÒ °æ¿ì´Â ÇØ´ç ¿ä¼ÒÀÇ °ª¿¡ ´ëÇÑ ·¹ÆÛ·±½º¸¦ ¸®ÅÏÇÑ´Ù. µû¶ó¼­ Á¸ÀçÇϴ Ű¿¡ ´ëÇØ¼­´Â °ªÀ» ¼öÁ¤ÇÏ´Â ¿ëµµ·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. mapfind¿¹Á¦ÀÇ »ðÀÔ¹® ´ÙÀ½¿¡ ¾Æ·¡ÀÇ Äڵ带 Ãß°¡ÇØ º¸ÀÚ.

 

m["ºÎ»ê"]=600;

 

ºÎ»êÀ» Ű·Î °¡Áö´Â ¿ä¼Ò°¡ ÀÌ¹Ì »ðÀԵǾî ÀÖÀ¸¹Ç·Î [ ] ¿¬»êÀÚ´Â ºÎ»ê ¿ä¼ÒÀÇ °ª¿¡ ´ëÇÑ ·¹ÆÛ·±½º¸¦ ¸®ÅÏÇÑ´Ù. ÀÌ ·¹ÆÛ·±½º¿¡ ¿øÇÏ´Â °ªÀ» ´ëÀÔÇÏ¸é ¿ä¼ÒÀÇ °ªÀÌ º¯°æµÈ´Ù. ¹°·Ð ºÎ»êÀÌ Á¸ÀçÇÏÁö ¾Ê´Â´Ù¸é ÀÌ ¹®ÀåÀº »õ·Î¿î ¿ä¼Ò¸¦ »ðÀÔÇÏ´Â ¸í·ÉÀÌ µÉ °ÍÀÌ´Ù. ¶È°°Àº ÀÛ¾÷À» find ¸â¹ö ÇÔ¼ö¿Í ¹Ýº¹Àڷεµ ÇÒ ¼ö ÀÖ´Ù.

 

it=m.find("ºÎ»ê");

it->second=600;

 

ºÎ»êÀ» °¡¸®Å°´Â ¹Ýº¹ÀÚ¸¦ ±¸ÇÑ ÈÄ ÀÌ ¿ä¼ÒÀÇ second, Áï °ª¿¡ 600À» ´ëÀÔÇßÀ¸¹Ç·Î ºÎ»êÀÇ Àα¸°¡ ¼öÁ¤µÉ °ÍÀÌ´Ù. ¸Ê¿¡ ÀúÀåµÇ´Â °ªÀº Á¤·ÄÀ̳ª °Ë»öÀÇ ±âÁØÀ¸·Î »ç¿ëµÇ´Â °ÍÀÌ ¾Æ´Ï¶ó ´Ü¼øÇÑ Á¤º¸ÀÏ »ÓÀ̹ǷΠÇÊ¿äÇÒ °æ¿ì ¾ó¸¶µçÁö ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ¾î¶² ¹æ¹ýÀ» ¾²´õ¶óµµ Ű´Â º¯°æÇÒ ¼ö ¾ø´Ù. ¿¹¸¦ µé¾î it°¡ ºÎ»êÀ» °¡¸®Å³ ¶§ ´ÙÀ½ Äڵ带 ½ÇÇàÇÒ ¼ö ÀÖ´Ù°í ÇØ º¸ÀÚ.

 

it->first="Æò¾ç";

 

ºÎ»êÀº Á¤·Ä ±âÁØ¿¡ ÀÇÇØ µ¶µµ¿Í ¼­¿ï »çÀÌ¿¡ Àִµ¥ Æò¾çÀ¸·Î ۰¡ º¯°æµÇ¸é Á¤·Ä »óŸ¦ À¯ÁöÇϱâ À§ÇØ ¿ä¼ÒÀÇ ¼ø¼­µµ Á¶Á¤µÇ¾î¾ß ÇÑ´Ù. ÇÏÁö¸¸ ¹Ýº¹ÀÚ´Â ¿À·ÎÁö À§Ä¡¸¸ °¡¸®Å³ »ÓÀÌÁö ÄÁÅ×À̳ÊÀÇ ³»ºÎ ±¸Á¶±îÁö´Â ¸ð¸£±â ¶§¹®¿¡ ÀÌ·± Á¶Á¤À» ÇÒ ±ÇÇѵµ ´É·Âµµ ¾ø´Ù. ºÎ»êÀÌ ±×³É Æò¾çÀ¸·Î ¹Ù²ð »ÓÀÌ¸ç ¸ÊÀÇ ¹«°á¼ºÀÌ ¹Ú»ì³ª°í ÀÌÈĺÎÅÍ ÀÌ ¸ÊÀÌ ¾î¶»°Ô µ¿ÀÛÇÒ Áö´Â º¸ÀåÇÒ ¼ö ¾øÀ» °ÍÀÌ´Ù.

±×·¯³ª ´ÙÇàÈ÷ ¸ÊÀÇ Å°¸¦ ¼öÁ¤ÇÏ´Â ÄÚµå´Â ÄÄÆÄÀÏ ¿¡·¯·Î 󸮵ȴÙ. ¸ÊÀÇ ¿ä¼Ò ŸÀÔÀÌ pair(Key, T)°¡ ¾Æ´Ï¶ó pair(const Key, T)·Î µÇ¾î ÀÖ¾î Ű´Â ¹«Á¶°Ç ¼öÁ¤ ºÒ°¡´ÉÇÏ´Ù. Ű´Â ¿À·ÎÁö Á¤·Ä ±âÁØÀ¸·Î¸¸ »ç¿ëµÇ¹Ç·Î ÀÏ´Ü »ðÀԵǸé Àý´ë·Î ¼öÁ¤ÇÒ ¼ö ¾ø´Ù. ¹Ý¸é ¼ÂÀº ÀÌ·± ¾ÈÀü ÀåÄ¡°¡ ¾ø´Âµ¥ ¿Ö³ÄÇϸé Ű ÀÚü°¡ °ªÀÌ¶ó °´Ã¼ÀÇ ´Ù¸¥ ¸â¹ö¸¦ ¼öÁ¤ÇÏ´Â °ÍÀ» Çã¶ôÇØ¾ß Çϱ⠶§¹®ÀÌ´Ù. ¸¸¾à ¸ÊÀÇ Å°¸¦ ²À ¼öÁ¤ÇÏ°í ½Í´Ù¸é »èÁ¦Çß´Ù°¡ ´Ù½Ã »ðÀÔÇÏ´Â ¼ö¹Û¿¡ ¾ø´Ù.