Files
EzUI/demo/kugou/include/Common/include/Map.hpp
睿 安 37e7d278bd 备份
2026-01-25 23:46:14 +08:00

47 lines
1.1 KiB
C++

#pragma once
#include <unordered_map>
template<class T1, class T2>
class Map :protected std::unordered_map<T1, T2> {
using __base = std::unordered_map<T1, T2>;
T2 defaultValue = T2();//当获取不到value的时候返回的默认值
public:
typename __base::iterator begin() {
return __base::begin();
}
typename __base::iterator end() {
return __base::end();
}
bool insert(const T1& key, const T2& value) {
auto itor = __base::insert(std::pair<T1, T2>(key, value));
return itor.second;
}
bool empty() {
return __base::empty();
}
size_t size() {
return __base::size();
}
const T2& operator[](const T1& key) const {
auto itor = __base::find(key);
if (itor != __base::end()) {
return itor->second;
}
return defaultValue;
}
typename __base::iterator find(const T1& key) {
return __base::find(key);
}
void erase(const typename __base::iterator& itor) {
__base::erase(itor);
}
bool erase(const T1& key) {
auto itor = __base::find(key);
if (itor != __base::end()) {
__base::erase(itor);
return true;
}
return false;
}
};