Class bidir_map

Class Documentation

class bidir_map

将整数二元组稳定映射为连续 ID 的双向表。

operator[] 具有插入语义;只读查询应使用 contains()try_get(), 避免意外改变 ID 空间。

Public Functions

inline int operator[](const pair<int, int> &key)

获取已有 ID,或为新 key 分配下一个连续 ID。

inline int size() const

返回已分配 ID 的数量。

inline const pair<int, int> &at(int id) const

按 ID 返回原始二元组;调用方须保证 ID 有效。

inline bool contains(const pair<int, int> &key) const

判断 key 是否存在,不修改映射。

inline bool try_get(const pair<int, int> &key, int &value) const

尝试只读查询 key,并通过 value 返回 ID。

Public Members

flat_hash_map<pair<int, int>, int> node_map

二元组到 ID 的正向映射。

vector<pair<int, int>> reverse_node_map

ID 到二元组的反向映射。

Private Members

int _size = 0

已分配的连续 ID 数量。