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