c++ - 是否有 O(1) 方法将 std::map<keytype, value> 转换为 std::set<keytype>

标签 c++ stdmap stdset

我想对 std::map<> 实例的键进行一些集合交集操作,而无需事先将键复制到 std::set<> 中。

API 中没有记录,但是有没有办法在 O(1) 时间内从 std::map<> 中提取 key 并将它们放入 std::set<>?

最佳答案

创建一个首先为 map 返回的迭代器适配器,并将其与 set_intersection 一起使用。

关于c++ - 是否有 O(1) 方法将 std::map<keytype, value> 转换为 std::set<keytype>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14389767/

相关文章:

c++ - COM (C++) Interlock API 是否足以保证 AddRef 和 Release 中的线程安全?

c++ - 为什么 std::set 和 set::map 的默认构造函数需要堆分配?

c++ - 如何将函数应用于映射的每个值以创建排序序列?

c++ - 从 std::vector 查找 std::map 中的对象

c++ - 如何在 C++ 中创建具有非标准顺序的整数集?

c++ - int 到 int [x] 的不兼容类型赋值

c++ - 删除 char** 数组的正确方法

C++ Builder 2010 异常死锁?

c++ - std::set<classtype>.find(element) 是否使用类中的 == 运算符来比较元素?

c++ - 语言的哪一部分禁止更改 std::set 的元素