本文 C++23より, 規格の上ではstd::flat_mapが定義されています. boostには既にその実験的または前身となる実装があります. 端緒 // 何か適当な構造体があって struct object { int id; std::string name; }; // idをキーにソート済み // ただし, idと要素番号とが一致しない const auto array = std::to_array<object>({ {1, "a"}, // 1 != 0 {3, "c"}, // 3 != 1 {9, "h"}, // 9 != 2 }); assert(std::ranges…