在C++23的草案中,
flat_map
类型的设计中,flat_map::reference
类型被定义为pair<const key_type&, mapped_type&>
,即它不是对flat_map::value_type = pair<key_type, mapped_type>
的引用。(这似乎是强制性的,因为键和值不是作为一对存储,而是在两个单独的容器中存储。) 因此,迭代器必须是某个代理类。 这让我想到:一个flat_map
实际上是否还是STL容器,类似于std::vector<bool>
不是一个?