¼ÂÀÌ Å°ÀÇ ÁýÇÕ¸¸À» °ü¸®Çϴµ¥ ºñÇØ ¸ÊÀº Ű¿Í °ªÀÇ ½ÖÀ» °ü¸®ÇÑ´Ù. ¿¬°üÀÌ ÀÖ´Â µÎ °³ÀÇ °ªÀ» ½ÖÀ¸·Î °ü¸®ÇÑ´Ù´Â Á¡¿¡¼ ÁøÁ¤ÇÑ ¿¬°ü ÄÁÅ×À̳ʶó°í ÇÒ ¼ö ÀÖ´Ù. ¼Â°ú ¸¶Âù°¡Áö·Î Á¤·ÄµÈ »óÅ·Π¿ä¼Ò¸¦ ÀúÀåÇϹǷΠ۰ªÀ¸·Î ºü¸£°Ô °Ë»öÇÒ ¼ö ÀÖ´Ù. ¼Â¿¡ ºñÇØ °ªÀ» Ãß°¡·Î °¡Áø´Ù´Â Â÷ÀÌÁ¡ÀÌ Àִµ¥ ¹Ý´ë·Î Ç¥ÇöÇÏ¸é ¼ÂÀº °ªÀ» °¡ÁöÁö ¾Ê´Â ¸ÊÀ̶ó°íµµ ÇÒ ¼ö ÀÖ´Ù.
µÎ ÄÁÅ×ÀÌ³Ê ¸ðµÎ ۸¦ Á¤·Ä ¹× °Ë»öÀÇ ±âÁØÀ¸·Î »ç¿ëÇÑ´Ù. ±×·¯³ª °ªÀº ´Ü¼øÈ÷ Ű¿Í ÇÔ²² °°ÀÌ ÀúÀåµÇ±â¸¸ ÇÒ »ÓÀÌÁö ¸ÊÀÇ ³»ºÎÀûÀÎ ±¸¼ºÀ̳ª °ü¸® ¹æ¹ý¿¡´Â ÀüÇô ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê´Â´Ù. ´Ü¼ø ¸ÊÀº ŰÀÇ Áߺ¹À» Çã¶ôÇÏÁö ¾ÊÀ¸¹Ç·Î ÇÑ Å°¿¡ ´ëÇØ Çϳª¸¸ ÀúÀåÇÒ ¼ö Àִµ¥ ºñÇØ ¸ÖƼ ¸ÊÀº ŰÀÇ Áߺ¹À» Çã¿ëÇϹǷΠ¿©·¯ °³ÀÇ Å°¸¦ ÀúÀåÇÒ ¼ö ÀÖ´Ù. ¸ÊÀº ¿¬°üÀÖ´Â µ¥ÀÌÅÍÀÇ °ü°è¸¦ Ç¥ÇöÇϴµ¥ ÁÖ·Î »ç¿ëµÈ´Ù.
¿¹¸¦ µé¾î Áֹεî·Ï¹øÈ£¿Í »ç¶÷ À̸§°úÀÇ °ü°è¸¦ µé ¼ö Àִµ¥ ÀÌ µÑÀº ÀÏ´ëÀÏ·Î ´ëÀÀµÇ¹Ç·Î ÇϳªÀÇ ½ÖÀ¸·Î º¼ ¼ö ÀÖ´Ù. ¹øÈ£¸¦ Ű·Î, À̸§À» °ªÀ¸·Î ÇÏ¿© ÇϳªÀÇ Â¦À¸·Î ¹¾î¼ ¸Ê¿¡ Á¤·ÄµÈ »óÅ·ΠÀúÀåÇÏ¸é ¹øÈ£·ÎºÎÅÍ À̸§À» ºü¸£°Ô °Ë»öÇÒ ¼ö ÀÖ´Ù. Áֹεî·Ï¹øÈ£´Â Áߺ¹µÇ¾î¼´Â ¾ÈµÇ¹Ç·Î Áߺ¹À» Çã¶ôÇÏÁö ¾Ê´Â ¸ÊÀ¸·Î ÀÌ °ü°è¸¦ Ç¥ÇöÇÑ´Ù.
¸¸¾à ¹øÈ£¿Í À̸§ÀÇ ¿ªÇÒÀ» ¹Ù²Ù¾î À̸§ÀÌ Å°°¡ µÇ°í ¹øÈ£°¡ °ªÀÌ µÈ´Ù¸é À̶§´Â ¸ÖƼ¸ÊÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. ¿Ö³ÄÇÏ¸é »ç¶÷Àº µ¿¸íÀÌÀÎÀÌ Á¸ÀçÇÒ ¼ö ÀÖÀ¸¹Ç·Î À̸§ÀÌ °°´õ¶óµµ »ðÀÔ °¡´ÉÇØ¾ß Çϱ⠶§¹®ÀÌ´Ù. ÀÌ °æ¿ì´Â À̸§À» Ű·Î ÇÏ¿© Áֹεî·Ï¹øÈ£¸¦ ºü¸£°Ô °Ë»öÇÒ ¼ö ÀÖµÇ ¿©·¯ °³ÀÇ °á°ú°¡ ³ª¿Ã ¼ö ÀÖ´Ù.
¸ÊÀº ¿¬°üÀÌ ÀÖ´Â µÎ µ¥ÀÌÅÍÀÇ ½ÖÀ» °ü¸®ÇϹǷΠ¼Âº¸´Ù´Â ÈξÀ ´õ ½Ç¿ëÀûÀÌ´Ù. 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)·Î µÇ¾î ÀÖ¾î Ű´Â ¹«Á¶°Ç ¼öÁ¤ ºÒ°¡´ÉÇÏ´Ù. Ű´Â ¿À·ÎÁö Á¤·Ä ±âÁØÀ¸·Î¸¸ »ç¿ëµÇ¹Ç·Î ÀÏ´Ü »ðÀԵǸé Àý´ë·Î ¼öÁ¤ÇÒ ¼ö ¾ø´Ù. ¹Ý¸é ¼ÂÀº ÀÌ·± ¾ÈÀü ÀåÄ¡°¡ ¾ø´Âµ¥ ¿Ö³ÄÇϸé Ű ÀÚü°¡ °ªÀÌ¶ó °´Ã¼ÀÇ ´Ù¸¥ ¸â¹ö¸¦ ¼öÁ¤ÇÏ´Â °ÍÀ» Çã¶ôÇØ¾ß Çϱ⠶§¹®ÀÌ´Ù. ¸¸¾à ¸ÊÀÇ Å°¸¦ ²À ¼öÁ¤ÇÏ°í ½Í´Ù¸é »èÁ¦Çß´Ù°¡ ´Ù½Ã »ðÀÔÇÏ´Â ¼ö¹Û¿¡ ¾ø´Ù.