)]}'
{
  "commit": "c2e1cc50e06803c85332bdc11dd9220edcff7b11",
  "tree": "1a519dde37054797b39217ac8e1f1bbc05853f76",
  "parents": [
    "173f2a7407bb11bb9a043f5e5fc07eb4cc9a897f"
  ],
  "author": {
    "name": "Niels Lohmann",
    "email": "mail@nlohmann.me",
    "time": "Tue Aug 04 08:45:35 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Aug 04 08:45:35 2026 +0200"
  },
  "message": "docs: document the complexity of ordered_map operations (#5353)\n\n* docs: document the complexity of ordered_map operations\n\nordered_map stores its elements in a std::vector in insertion order and\nhas no lookup index, so emplace, operator[], at, find, count, erase, and\ninsert are all linear scans. The documentation stated no complexity for\nany operation, neither in ordered_map.md nor in ordered_json.md.\n\nAdd a per-operation complexity table and note the consequence: building\nor parsing an ordered_json object of n keys is O(n^2). Measured with\n-O2 -DNDEBUG for parsing a flat object of n keys, ordered_json is 5x\nslower than json at n\u003d2000 and 54x slower at n\u003d16000, with the timings\nquadrupling per doubling of n. Cross-reference the table from\nordered_json.md and from the object order page, which recommends\nordered_json without mentioning the cost.\n\nSigned-off-by: Niels Lohmann \u003cmail@nlohmann.me\u003e\n\n* docs: move the Complexity section after Member functions\n\nscripts/check_structure.py enforces a fixed section order for pages under\ndocs/mkdocs/docs/api, in which Complexity comes after Member functions.\nThe section had been placed right after Iterator invalidation, which made\nci_test_build_documentation fail with structure/section_order.\n\nNo content change beyond the move; the table columns are realigned to the\nnarrower content.\n\nSigned-off-by: Niels Lohmann \u003cmail@nlohmann.me\u003e\n\n---------\n\nSigned-off-by: Niels Lohmann \u003cmail@nlohmann.me\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b28fe36f67c9aa4f1f9b900bdb3820248ae52d7d",
      "old_mode": 33188,
      "old_path": "docs/mkdocs/docs/api/ordered_json.md",
      "new_id": "feea642cdd13402f77b1261c4f02a301ad9d95e8",
      "new_mode": 33188,
      "new_path": "docs/mkdocs/docs/api/ordered_json.md"
    },
    {
      "type": "modify",
      "old_id": "ca4934161c63df25039641979dcf55c73548f57e",
      "old_mode": 33188,
      "old_path": "docs/mkdocs/docs/api/ordered_map.md",
      "new_id": "df21175d08b13af9f59d7f1d44f209fcbca72331",
      "new_mode": 33188,
      "new_path": "docs/mkdocs/docs/api/ordered_map.md"
    },
    {
      "type": "modify",
      "old_id": "ac5eb7bebaf1d42a1867b30e98809e106078fa5b",
      "old_mode": 33188,
      "old_path": "docs/mkdocs/docs/features/object_order.md",
      "new_id": "f62474efd20c8c37273003cb7e683d241efa6e0d",
      "new_mode": 33188,
      "new_path": "docs/mkdocs/docs/features/object_order.md"
    }
  ]
}
