๋ฐ์ํ
map์ ํน์ ์์์ ๋ฐ๋ผ 'key-value'๋ก ๋งคํ๋ ๊ฐ์ ์กฐํฉ์ ์ ์ฅํฉ๋๋ค.
map ํค๋
#include <map>
map ์ ์ธ
map์ ๊ธฐ๋ณธ์ ์ผ๋ก key๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ด๋๋ค.
map<string, int> MP;
map ๋ด๋ฆผ์ฐจ์ ์ ์ธ
๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ ์ถ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ ์ธํ๋ฉด๋๋ค. grater<key ์๋ฃํ> ์ถ๊ฐ
map<string, int, greater<string>> MP;
map insert ์์ ์ฝ์
MP["AAA"] = 4; // ("AAA", 4) ์ฝ์ MP["BBB"] = 8; // ("BBB", 8) ์ฝ์ MP.insert(make_pair("111", 9)); // ("111", 9) ์ฝ์ MP.insert(make_pair("0", 100)); // ("0", 100) ์ฝ์
map value ์ ๊ทผ
// value ์ ๊ทผ cout << MP["111"] << "\n"; // 9 ์ถ๋ ฅ cout << MP["AAA"] << "\n"; // 4 ์ถ๋ ฅ cout << MP["YYY"] << "\n"; // 0 ์ถ๋ ฅ cout << MP["ZZZ"] << "\n"; // 0 ์ถ๋ ฅ
map value ์์
// value ์์ MP["AAA"] += 100; cout << MP["AAA"] << "\n"; // 104 ์ถ๋ ฅ
map erase ์ญ์
// ์ญ์ MP.erase("AAA"); // "AAA"๋ฅผ ํค๋ก ๊ฐ์ง ์์ ์ญ์ MP.erase("ZZZ"); // "ZZZ"๋ฅผ ํค๋ก ๊ฐ์ง ์๋ ์์ ์ญ์ , ์๋ฌ ๋์ง ์์
map find ์ฐพ๊ธฐ
์ฐพ๋ key๊ฐ ์์ผ๋ฉด, end()๋ฅผ ๋ฐํํ๋ค.
์๋๋ "999999 is not in MP"๊ฐ ์ถ๋ ฅ๋๋ค.
if(MP.find("999999") == MP.end()) cout << "999999 is not in MP\n"; else cout << "999999 is in MP\n";
map empty
๋น์ด์๋ค๋ฉด true, ๋น์ด์์ง ์๋ค๋ฉด false๋ฅผ ๋ฐํ
์๋๋ "MP is not empty" ๊ฐ ์ถ๋ ฅ๋๋ค
if(MP.empty() == true) cout << "MP is empty\n"; else cout << "MP is not empty\n";
map clear
// clear MP.clear(); cout << "MP size : " << MP.size() << "\n"; // MP size : 0
map ์ํ
for(auto it : MP) cout << it.first << " " << it.second << "\n";
์ ์ฒด ์์ค์ฝ๋
#include <iostream> #include <map> using namespace std; // Maps are associative containers that // store elements formed by a 'combination of a key value and a mapped value', following a specific order. int main() { // map ์ ์ธ // map์ ๊ธฐ๋ณธ์ ์ผ๋ก key๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ด ๋๋ค. map<string, int> MP; // ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ ์ถ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ ์ธํ๋ฉด๋๋ค. grater<key ์๋ฃํ> ์ถ๊ฐ // map<string, int, greater<string>> MP; // ์์ ์ฝ์ MP["AAA"] = 4; // ("AAA", 4) ์ฝ์ MP["BBB"] = 8; // ("BBB", 8) ์ฝ์ MP.insert(make_pair("111", 9)); // ("111", 9) ์ฝ์ MP.insert(make_pair("0", 100)); // ("0", 100) ์ฝ์ // size cout << "MP size : " << MP.size() << "\n"; // MP size : 4 // value ์ ๊ทผ cout << MP["111"] << "\n"; // 9 ์ถ๋ ฅ cout << MP["AAA"] << "\n"; // 4 ์ถ๋ ฅ cout << MP["YYY"] << "\n"; // 0 ์ถ๋ ฅ cout << MP["ZZZ"] << "\n"; // 0 ์ถ๋ ฅ // value ์์ MP["AAA"] += 100; cout << MP["AAA"] << "\n"; // 104 ์ถ๋ ฅ // ์ญ์ MP.erase("AAA"); // "AAA"๋ฅผ ํค๋ก ๊ฐ์ง ์์ ์ญ์ MP.erase("ZZZ"); // "ZZZ"๋ฅผ ํค๋ก ๊ฐ์ง ์๋ ์์ ์ญ์ , ์๋ฌ ๋์ง ์์ // find // ์ฐพ๋ key๊ฐ ์์ผ๋ฉด, end()๋ฅผ ๋ฐํํ๋ค. // ์๋๋ "999999 is not in MP"๊ฐ ์ถ๋ ฅ๋๋ค if(MP.find("999999") == MP.end()) cout << "999999 is not in MP\n"; else cout << "999999 is in MP\n"; // empty // ๋น์ด์๋ค๋ฉด true, ๋น์ด์์ง ์๋ค๋ฉด false // ์๋๋ "MP is not empty" ๊ฐ ์ถ๋ ฅ๋๋ค if(MP.empty() == true) cout << "MP is empty\n"; else cout << "MP is not empty\n"; // MP ์ํ // ์๋์ ๊ฐ์ด ์ถ๋ ฅ๋๋ค. /* 0 100 111 9 BBB 8 YYY 0 */ for(auto it : MP) cout << it.first << " " << it.second << "\n"; // clear MP.clear(); cout << "MP size : " << MP.size() << "\n"; // MP size : 0 }
์ฐธ๊ณ ์๋ฃ
๋ฐ์ํ