#include <map>
#include <set>
#include <iostream>
using namespace std;
int main()
{
int row = 0;
int col = 0;
std::map<int, set<int>> sparseBlue;
// insert empty item
auto iter = sparseBlue.insert(std::make_pair(row, std::set<int>()));
// did a new item get inserted?
cout << "The item did " << (iter.second?"":"not") << " get inserted\n";
// add item to set
(*iter.first). // the map iterator
second. // the set
insert(col); // what we want to do
// test
cout << sparseBlue[row].size() << " item(s) in the set";
}
ICAgICNpbmNsdWRlIDxtYXA+CiAgICAjaW5jbHVkZSA8c2V0PgogICAgI2luY2x1ZGUgPGlvc3RyZWFtPgogICAgCiAgICB1c2luZyBuYW1lc3BhY2Ugc3RkOwogICAgCiAgICBpbnQgbWFpbigpIAogICAgewogICAgCWludCByb3cgPSAwOwogICAgCWludCBjb2wgPSAwOwogICAgICAgIHN0ZDo6bWFwPGludCwgc2V0PGludD4+IHNwYXJzZUJsdWU7CgogICAgICAgIC8vIGluc2VydCBlbXB0eSBpdGVtCiAgICAgICAgYXV0byBpdGVyID0gc3BhcnNlQmx1ZS5pbnNlcnQoc3RkOjptYWtlX3BhaXIocm93LCBzdGQ6OnNldDxpbnQ+KCkpKTsKCiAgICAgICAgLy8gZGlkIGEgbmV3IGl0ZW0gZ2V0IGluc2VydGVkPwogICAgICAgIGNvdXQgPDwgIlRoZSBpdGVtIGRpZCAiIDw8IChpdGVyLnNlY29uZD8iIjoibm90IikgPDwgIiBnZXQgaW5zZXJ0ZWRcbiI7CgoKICAgICAgICAvLyBhZGQgaXRlbSB0byBzZXQgCiAgICAgICAgKCppdGVyLmZpcnN0KS4gIC8vIHRoZSBtYXAgaXRlcmF0b3IKICAgICAgICAgICAgICAgc2Vjb25kLiAgLy8gdGhlIHNldAogICAgICAgICAgICAgICBpbnNlcnQoY29sKTsgLy8gd2hhdCB3ZSB3YW50IHRvIGRvIAogICAgICAgICAgICAgICAKICAgICAgIC8vIHRlc3QKICAgICAgIGNvdXQgPDwgc3BhcnNlQmx1ZVtyb3ddLnNpemUoKSA8PCAiIGl0ZW0ocykgaW4gdGhlIHNldCI7CiAgICB9Cg==