?? mapkey.h
字號:
#ifndef _MAPKEY_H
#define _MAPKEY_H
#include "vector"
template<class U, class V>
class mapkey
{
typedef std::pair<U, V> element;
typedef std::vector<element> elements;
elements elems;
public:
V& operator[](U u)
{
for( int i=0; i<elems.size(); i++ )
{
element& ref = elems[i];
if( ref.first == u )
{
return ref.second;
}
}
elems.push_back(element(u, V()));
return elems.back().second;
}
void clear()
{
elems.clear();
}
bool remove_key(const U& u)
{
for( int i=0; i<elems.size(); i++ )
{
element& ref = elems[i];
if( ref.first == u )
{
elems.erase(elems.begin()+i);
return true;
}
}
return false;
}
bool remove_value(const V& v)
{
for( int i=0; i<elems.size(); i++ )
{
element& ref = elems[i];
if( ref.second == v )
{
elems.erase(elems.begin()+i);
return true;
}
}
return false;
}
int count() const {return elems.size();}
U& key_from_value(const V& v)
{
static U empty_U;
for( int i=0; i<elems.size(); i++ )
{
element& ref = elems[i];
if( ref.second == v )
{
return ref.first;
}
}
return empty_U;
}
U& key(int index)
{
return elems[index].first;
}
V& value(int index)
{
return elems[index].second;
}
};
#endif // _MAPKEY_H
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -