Есть ли способ пересечь/различить std::map и std::set?

Мне интересно, есть ли способ пересекать или делать различия между двумя структурами, определенными как std::set<MyData*>и std::map<MyData*, MyValue>со стандартными алгоритмами (, такими какstd::set_intersect)

Проблема в том, что мне нужно вычислить разницу между набором и набором ключей карты, но я хотел бы избежать ее перераспределения (, так как это делается много раз в секунду с большими структурами данных). Есть ли способ получить «ключевой вид» std::map? В конце концов, то, что я ищу, - это учитывать только ключи при выполнении операции набора, поэтому с точки реализации это должно быть возможно, но я ничего не смог найти.

11
задан Jack 10 April 2012 в 14:35
поделиться