key의 중복없이 정렬된 상태로 key-value 쌍을 저장하고, 랜덤한 인덱스의 데이터에 접근 불가
검색, 삽입, 삭제 - 시간 복잡도: O(logN)
map은 key를 기준으로 오름차순 정렬
map<key_type, value_type> m;
greater<key_type>
추가map<key_type, value_type, greater<key_type>> m;
map<key_type, value_type> m = { {key1, val1}, {key2, val2}, ... };
//방법 1
m.at(key);
//방법 2
m[key];
//방법 1
m.insert(pair<type1, type2>(key1, val1));
//방법2
m.insert(make_pair(key1, val1));
for(auto iter : m)
cout << iter.first << " " << iter.second << "\n";
key를 중복없이 정렬된 상태로 저장하고, 랜덤한 인덱스의 데이터에 접근 불가
검색, 삽입, 삭제 - 시간 복잡도: O(logN)
set<int> s;
s.insert(x);
set<int> s;
s.erase(x);
s.find()
: 찾는 값이 있으면 해당 위치의 iterator 반환, 아니면 s.end()반환
#include <iostream>
#include <set>
...
set<int> s;
//방법1
for(auto iter = s.begin(); iter != s.end(); iter++) {
cout << *iter << " ";
}
for(auto iter : s) {
cout << iter << " ";
}
set에서 찾고자 하는 요소가 있으면 1, 없으면 0 반환
#include <iostream>
#include <set>
using namespace std;
int main() {
set<int> s = {1, 2, 3, 4, 5};
if (s.count(3)) cout << "3이 존재합니다!\n";
if (!s.count(6)) cout << "6은 없습니다!\n";
return 0;
}