๐ฉ ์ธ๋ฑ์ค๋ก int๊ฐ ์๋ ๋ค๋ฅธ ์๋ฃํ์ ์ฌ์ฉํ ์ ์๋ ๋ฐฐ์ด (ํธ์์)
map์ ๋ด๋ถ์ ์ธ ๊ตฌ์กฐ๋ ๊ฐ ๋ ธ๋๊ฐ key์ value์ ์์ผ๋ก ์ด๋ฃจ์ด์ง 'ํธ๋ฆฌ'์ด๋ค.
ํนํ ๊ฒ์, ์ฝ์ , ์ญ์ ๋ฑ์ ์๋๋ฅผ ๋น ๋ฅด๊ฒ ํ๊ธฐ ์ํด ๊ท ํ ์ด์ง ํธ๋ฆฌ ์ค์ ํ๋์ธ '๋ ๋-๋ธ๋ ํธ๋ฆฌ'๋ก ๊ตฌํ๋์ด ์๋ค.
๊ฒ์ ์๋๊ฐ ํนํ ๋น ๋ฅธ๋ฐ ์ด๋ key๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ๋ ์ํ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
๐ฉ ์ฐ๊ด์๋ ๋ ๊ฐ์ ํจ๊ป ๋ฌถ์ด์ ๊ด๋ฆฌํ๋, ๊ฒ์์ ๋น ๋ฅด๊ฒ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ
๐ฉ #include <map>
map์ ์ค๋ณต ๋ถ๊ฐํ key์ value ์์ผ๋ก ์ด๋ฃจ์ด์ง ๋ ธ๋์ ํธ๋ฆฌ๋ผ๊ณ ํ ์ ์๋ค.
๊ฐ์ key ๊ฐ์ ๊ฐ๋ ๋ ธ๋๋ฅผ ์ถ๊ฐํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น? ํด๋น key ๊ฐ์ ๊ฐ๊ณ ์๋ ์๋ ๋ ธ๋์ value ๊ฐ์ ๋ฎ์ด ์์์ง๊ฒ ๋๋ค.
map์ ์์์ ์ ๊ทผํ ๋, ๋ฐ๋ณต์(iterator)๋ฅผ ์ด์ฉํ๋ ๋ฐฉ์๊ณผ ์ธ๋ฑ์ค(key)๋ฅผ ์ด์ฉํ ๋ฐฉ์, ๋ ๊ฐ์ง ๋ฐฉ์์ ์ด์ฉํ ์ ์๋ค.
m.size() | m์ ๋ ธ๋ ๊ฐ์๋ฅผ ๋ฆฌํด |
m.empty() | m์ ์ฌ์ด์ฆ๊ฐ 0์ธ์ง ์๋์ง ๋ฆฌํด |
m.begin() | m์ ์ฒซ ๋ฒ์งธ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ iterator ๋ฆฌํด |
m.end() | m์ ๋ง์ง๋ง ์์๋ฅผ๊ฐ๋ฆฌํค๋ iterator ๋ฆฌํด |
m[k] = v | m์ key๊ฐ k์ด๊ณ , value๊ฐ v์ธ ๋ ธ๋ ์ถ๊ฐ |
m.insert(make_pair(k,v)) | |
m.erase(k) | m์์ key๊ฐ k์ธ ๋ ธ๋ ์ญ์ |
m.find(k) | m์์ key๊ฐ k์ธ ๋
ธ๋๋ฅผ ์ฐพ์, ํด๋น ๋
ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ iterator ๋ฆฌํด (key๊ฐ k์ธ ๋ ธ๋๊ฐ ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ, m์ ๋ง์ง๋ง ์์๋ฅผ ๊ฐ๋ฆฌํค๋ iterator ๋ฆฌํด) |
m.count(k) | m์์ key๊ฐ k์ธ ๋ ธ๋์ ๊ฐ์๋ฅผ ๋ฆฌํด |
cf. insert์ erase ํจ์์ ๊ฒฝ์ฐ, ํ๋ผ๋ฏธํฐ๋ก ๊ฐ ์์ฒด๊ฐ ์๋ iterator๋ฅผ ๋๊ฒจ์ฃผ๋ ๋ฐฉ์์ ์ฌ์ฉํ ์ ์๋ค.
iterator๋ฅผ ๋๊ฒจ์ฃผ๋ ๋ฐฉ์์ ํตํด, ๋ฐฐ์ด์ด๋ ๋ฒกํฐ์ ์๋ ๋ชจ๋ ๊ฐ์ ์ถ๊ฐํ๊ฑฐ๋, map์ ์ฒซ ๋ฒ์งธ ์์๋ ๋ง์ง๋ง ์์๋ฅผ ์ญ์ ํ ์๋ ์๋ค.
EX1) vector์ v์ ์๋ ๋ชจ๋ ๊ฐ ์ถ๊ฐ ๐ m.insert(v.begin(), v.end())
EX2) map์ ์ฒซ ๋ฒ์งธ ์์ ์ญ์ ๐ m.erase(m.begin())
map์ ๋ค๋ฅธ ์ปจํ ์ด๋์ ๋นํด, iterator์ ์ฌ์ฉ์ด ์ฆ์ ์ปจํ ์ด๋์ด๋ค.
map<char, int> m;
map<char, int>::iterator it;
m['B'] = 2; // m : (B,2)
m.insert(make_pair('A',1)); // m : (A,1) (B,2)
m['C'] = 3; // m : (A,1) (B,2) (C,3)
m.erase('A'); // m : (B,2) (C,3)
// m ์ ์ฒด๋ฅผ ์ํํ๋ฉฐ key์ value ์ถ๋ ฅ
for(it= m.begin(); it != m.end(); it++){
cout << it->first << ' ' << it->second << '\n';
}
if(m.find('B') != m.end())
cout << "key๊ฐ์ด B์ธ ๋
ธ๋๊ฐ ์กด์ฌํฉ๋๋ค." << '\n';
else
cout << "key๊ฐ์ด B์ธ ๋
ธ๋๊ฐ ์กด์ฌํ์ง ์์ต๋๋ค." << '\n';
'๐ฉโ๐ป ํ๋ก๊ทธ๋๋ฐ > โจ ์๋ฃ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ธ์ ํ๋ ฌ๊ณผ ์ธ์ ๋ฆฌ์คํธ cf. ๊ทธ๋ํ (0) | 2024.04.18 |
---|---|
์ (Set) (0) | 2024.04.16 |
ํ์ด(Pair) (0) | 2024.04.15 |
๋ฒกํฐ(Vector) (0) | 2024.04.15 |
๋๋น ์ฐ์ ํ์(BFS) (0) | 2024.04.14 |