Здравствуйте, .alex, Вы писали:
A>Идея была в том, что при получении очередной записи из БД поочередно искать в мапах ключ/строку и если не нашли, то добавлять новую, что-то типа такого:
A>A>// look for Fld1
...
A>else
A>{
A> // add new pivot_entry from Fld1
pm->>emplace(pwszFld1, std::unordered_map<pwszFld2, std::unordered_map<pwszFld3, std::unordered_map<pwszFld4, >>>());
A>}
A>
Проще будет вместо такой лесенки сделать создание только на верхнем уровне для первого ключа и потом безусловно переходить к проверке следующего уровня. Так не надо будет выписывать все эти вложенные структуры.
Но можно делать ещё короче:
(*pm)[pwszFld1][pwszFld2][pwszFld3][pwszFld4] = new_pivot_entry; // update with replace
Это покроет все случаи с отсутствием ключей на любых уровнях и работать будет быстрее.
A>Подскажите как собственно добавлять новую запись, желательно через emplace()
Ну при желании можешь написать на последнем уровне через emplace.