SW์ค์ฌ๋ํ ์ฌ์ ๋จ์์ CodeTree์ ํจ๊ป ์ค์ํ ์ฝ๋ฉํ ์คํธ ๋๋น ์บ ํ์ ์ฐธ์ฌํ์ฌ ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ์์ต๋๋ค.
* ์ฐธ๊ณ : python๊ณผ c++, java ๋ฑ ์ธ์ด๋ณ๋ก ์ค๋ช ์ด ๋ค๋ฅธ ๋ถ๋ถ ์กด์ฌ! ํ์๋ c++ ์ฌ์ฉ.
unordered_set STL
C++์์๋ unordered_set์ด๋ผ๋ STL์ ์ด์ฉํ ์ ์์ต๋๋ค.
unordered_set์ HashSet ์๋ฃ๊ตฌ์กฐ๋ก ๋์ด์์ผ๋ฉฐ, ์ด HashSet์ด ๋ฐ๋ก ํด์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ค์ ๊ด๋ฆฌํด์ฃผ๋ ์๋ฃ๊ตฌ์กฐ ์ ๋๋ค.
๋ชจ๋ ํจ์์ ์๊ฐ๋ณต์ก๋๋ ์ ๋๋ค.
unordered_set์ set๋ณด๋ค ์๋๊ฐ ๋น ๋ฅด์ง๋ง, ๊ฐ์ ์กด์ฌ ์ฌ๋ถ์๋ง ๊ด์ฌ์ด ์์ง ๊ทธ ์์์๋ ์ ํ ๊ด์ฌ์ด ์๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค.
#include <unordered_set> ํค๋์, unordered_set<T> name; ํํ์ ์ ์ธ์ด ํ์ํฉ๋๋ค.
T๋ type์ผ๋ก, unordered_set ์์ ๋ค์ด๊ฐ ์์์ ํ์ ์ ์ ์ด์ค์ผ ํฉ๋๋ค.
๋, unordered_set์ ์๋ std::unordered_set์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
#include <iostream>
#include <unordered_set>
using namespace std;
int main() {
unordered_set<int> s;
return 0;
}
unordered_set์ ์ด์ฉํ ๋ ์์ฃผ ์ฌ์ฉ๋๋ ๊ฒ์ ๋ค์ 3๊ฐ์ง ์ ๋๋ค. unordered_set<int> s;๋ก ์ ์ธ๋์ด ์ฌ์ฉ๋ ๋๋ฅผ ์๋ก ์ค๋ช ํด๋ณด๊ฒ ์ต๋๋ค.
- s.insert(E)
hashset์ ๋ฐ์ดํฐ E๋ฅผ ์ถ๊ฐํฉ๋๋ค.
- s.erase(E)
ํ์ฌ hashset์ ๋ค์ด์๋ ๋ฐ์ดํฐ ์ค ์ซ์ E๋ฅผ ์ฐพ์ ์ ๊ฑฐํฉ๋๋ค.
- s.find(E)
ํ์ฌ hashset์ ์ซ์ E๊ฐ ๋ค์ด ์๋์ง๋ฅผ ์ฐพ์ต๋๋ค. ์๋ค๋ฉด ํด๋น iterator๋ฅผ ๋ฐํํ๋ฉฐ, ์๋ค๋ฉด s.end()๊ฐ์ ๋ฐํํฉ๋๋ค. ๋ฐ๋ผ์ ๊ฐ์ด ์๋ค๋ฉด s.find(E) != s.end(), ์๋ค๋ฉด s.find(E) == s.end()๋ฅผ ๋ง์กฑํ ๊ฒ์ ๋๋ค.
#include <iostream>
#include <unordered_set>
using namespace std;
int main() {
unordered_set<int> s; // ์ ์๋ฅผ ๊ด๋ฆฌํ hashset์ ์ ์ธํฉ๋๋ค. => ๋น set
s.insert(3);
s.insert(9);
s.insert(5);
if(s.find(3) != s.end()) { // ์ซ์ 3์ด set์ ์๋ค๋ฉด
cout << "exists!" << endl;
}
s.erase(9); // ์ซ์ 9๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
if(s.find(9) == s.end()) { // ์ซ์ 9๊ฐ hashset์ ์๋ค๋ฉด
cout << "not exists!" << endl;
}
return 0;
}
์ถ์ฒ ์ฝ๋ํธ๋ฆฌ
'๐ ์๊ณ ๋ฆฌ์ฆ > Code Tree' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ฝ๋ํธ๋ฆฌ] Tree Set (0) | 2023.02.09 |
---|---|
[์ฝ๋ํธ๋ฆฌ] Hash Set ์ฐ์ต๋ฌธ์ (0) | 2023.02.09 |
[์ฝ๋ํธ๋ฆฌ] TreeMap ์ฐ์ต๋ฌธ์ (0) | 2023.02.09 |
[์ฝ๋ํธ๋ฆฌ] Tree Map (0) | 2023.02.09 |
[์ฝ๋ํธ๋ฆฌ] HashMap ์ฐ์ต๋ฌธ์ (0) | 2023.02.09 |