# 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).