# nlohmann::ordered_map ```cpp template, class Allocator = std::allocator>> struct ordered_map : std::vector, Allocator>; ``` A minimal map-like container that preserves insertion order for use within [`nlohmann::ordered_json`](ordered_json.md) (`nlohmann::basic_json`). ## Template parameters `Key` : key type `T` : mapped type `IgnoredLess` : comparison function (ignored and only added to ensure compatibility with `#!cpp std::map`) `Allocator` : allocator type ## Member types - **key_type** - key type (`Key`) - **mapped_type** - mapped type (`T`) - **Container** - base container type (`#!cpp std::vector, Allocator>`) - **iterator** - **const_iterator** - **size_type** - **value_type** ## Member functions - (constructor) - (destructor) - **emplace** - **operator\[\]** - **at** - **erase** - **count** - **find** - **insert** ## Examples ??? example The example shows the different behavior of `std::map` and `nlohmann::ordered_map`. ```cpp --8<-- "examples/ordered_map.cpp" ``` Output: ```json --8<-- "examples/ordered_map.output" ``` ## See also - [ordered_json](ordered_json.md) ## Version history - Added in version 3.9.0 to implement [`nlohmann::ordered_json`](ordered_json.md).