通过map可以快速的通过key查找元素,通过vector可以快速的查看元素的个数和查找第i个元素。map和vector都可以实现快速的元素插入
它们组合起来可以实现随机访问表,如:
osgEarthDrivers/engine_rex/TileNodeRegistry
struct RandomAccessTileMap
{
struct Entry {
osg::ref_ptr<TileNode> tile;
unsigned index;
};
typedef std::map<TileKey, Entry> Table;
Table _table;
typedef Table::iterator iterator;
typedef Table::const_iterator const_iterator;
typedef std::vector<Entry*> Vector;
Vector _vector;
iterator begin() { return _table.begin(); }
const_iterator begin() const { return _table.begin(); }
iterator end() { return _table.end(); }
const_iterator end() const { return _table.end(); }
void insert(const TileKey& key, TileNode* data) {
Entry& e = _table[key];
e.tile = data;
e.index = _vect