#include <map>
#include <vector>
// type helpers
using MyVec = std::vector<int>;
using MyMap = std::map<unsigned int, MyVec>;
// Create v1
MyVec v1 { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 };
// Create the map
MyMap x;
constexpr unsigned int key = 123;
auto it = x.find(123);
if (it == x.end())
x[key] = v1; // causes a COPY of the entire vector
for (const auto& idx: x) {
// idx.first is the key
// idx.second is the vector
}
ICAgICNpbmNsdWRlIDxtYXA+CiAgICAjaW5jbHVkZSA8dmVjdG9yPgoKICAgIC8vIHR5cGUgaGVscGVycwogICAgdXNpbmcgTXlWZWMgPSBzdGQ6OnZlY3RvcjxpbnQ+OwogICAgdXNpbmcgTXlNYXAgPSBzdGQ6Om1hcDx1bnNpZ25lZCBpbnQsIE15VmVjPjsKCiAgICAvLyBDcmVhdGUgdjEKICAgIE15VmVjIHYxIHsgMTAsIDIwLCAzMCwgNDAsIDUwLCA2MCwgNzAsIDgwLCA5MCwgMTAwIH07CgogICAgLy8gQ3JlYXRlIHRoZSBtYXAKICAgIE15TWFwIHg7CgogICAgY29uc3RleHByIHVuc2lnbmVkIGludCBrZXkgPSAxMjM7CiAgICBhdXRvIGl0ID0geC5maW5kKDEyMyk7CiAgICBpZiAoaXQgPT0geC5lbmQoKSkKICAgICAgICB4W2tleV0gPSB2MTsgIC8vIGNhdXNlcyBhIENPUFkgb2YgdGhlIGVudGlyZSB2ZWN0b3IKCiAgICBmb3IgKGNvbnN0IGF1dG8mIGlkeDogeCkgewogICAgICAgIC8vIGlkeC5maXJzdCBpcyB0aGUga2V5CiAgICAgICAgLy8gaWR4LnNlY29uZCBpcyB0aGUgdmVjdG9yCiAgICB9