#pragma once
#include <map>
template<class T_KEY, class T_VALUE>
class TsMapT
{
public:
typedef std::map<T_KEY, T_VALUE> TMap;
public:
template<typename FUNC>
void For_Each(FUNC func)
{
for(TMap::iterator iter=m_container.begin(); iter!=m_container.end(); ++iter)
{
func(iter);
}
}
bool Register(T_KEY const &rKey, T_VALUE const &rValue)
{
return m_container.insert(std::make_pair(rKey, rValue)).second;
}
bool UnRegister(T_KEY const &rKey)
{
auto iter = m_container.find(rKey);
if( m_container.end() != iter )
{
m_container.erase(iter);
return true;
}
}
T_VALUE const& Get(T_KEY const &rKey) const
{
auto iter = m_container.find(rKey);
if( m_container.end() != iter )
{
return iter->second;
}
return nullptr;
}
T_VALUE& Get(T_KEY const &rKey)
{
auto iter = m_container.find(rKey);
if( m_container.end() != iter )
{
return iter->second;
}
return nullptr;
}
size_t Size()
{
return m_container.size();
}
private:
TMap m_container;
};
int _tmain(int argc, _TCHAR* argv[])
{
typedef TsMapT<int, int> OBJ_TYPE;
OBJ_TYPE obj;
// insert
for(int i=0; i<100; ++i)
{
obj.Register(i, i+100);
}
// print all
obj.For_Each( [=](OBJ_TYPE::TMap::iterator& iter)
{
::printf("key : %d, value : %d\n", iter->first, iter->second);
});
return 0;
}
#include <map>
template<class T_KEY, class T_VALUE>
class TsMapT
{
public:
typedef std::map<T_KEY, T_VALUE> TMap;
public:
template<typename FUNC>
void For_Each(FUNC func)
{
for(TMap::iterator iter=m_container.begin(); iter!=m_container.end(); ++iter)
{
func(iter);
}
}
bool Register(T_KEY const &rKey, T_VALUE const &rValue)
{
return m_container.insert(std::make_pair(rKey, rValue)).second;
}
bool UnRegister(T_KEY const &rKey)
{
auto iter = m_container.find(rKey);
if( m_container.end() != iter )
{
m_container.erase(iter);
return true;
}
}
T_VALUE const& Get(T_KEY const &rKey) const
{
auto iter = m_container.find(rKey);
if( m_container.end() != iter )
{
return iter->second;
}
return nullptr;
}
T_VALUE& Get(T_KEY const &rKey)
{
auto iter = m_container.find(rKey);
if( m_container.end() != iter )
{
return iter->second;
}
return nullptr;
}
size_t Size()
{
return m_container.size();
}
private:
TMap m_container;
};
int _tmain(int argc, _TCHAR* argv[])
{
typedef TsMapT<int, int> OBJ_TYPE;
OBJ_TYPE obj;
// insert
for(int i=0; i<100; ++i)
{
obj.Register(i, i+100);
}
// print all
obj.For_Each( [=](OBJ_TYPE::TMap::iterator& iter)
{
::printf("key : %d, value : %d\n", iter->first, iter->second);
});
return 0;
}




최근 덧글