Bidirectional map
In computer science, a bidirectional map is an associative data structure in which the {\displaystyle (key,value)} pairs form a one-to-one correspondence. Thus the binary relation is functional in each direction: each {\displaystyle value} can also be mapped to a unique {\displaystyle key}. A pair {\displaystyle (a,b)} thus provides a unique coupling between {\displaystyle a} and {\displaystyle b} so that {\displaystyle b} can be found when {\displaystyle a} is used as a key and {\displaystyle a} can be found when {\displaystyle b} is used as a key.
Mathematically, a bidirectional map can be defined a bijection {\displaystyle f:X\to Y} between two different sets of keys {\displaystyle X} and {\displaystyle Y} of equal cardinality, thus constituting an injective and surjective function:
{\displaystyle {\begin{cases}&\forall x,x'\in X,f(x)=f(x')\Rightarrow x=x'\\&\forall y\in Y,\exists x\in X:y=f(x)\end{cases}}\Rightarrow \exists f^{-1}(x)}
External links
[edit ]- Boost.org
- Commons.apache.org
- Cablemodem.fibertel.com.ar (archived version)
- Codeproject.com
- BiMap in the Google Guava library
- bidict (bidirectional map implementation for Python)
This algorithms or data structures-related article is a stub. You can help Wikipedia by expanding it.