c++ - 获取 map 内容作为数组

标签 c++ stl dictionary std

我有一个 std::mapHANDLE对象, std::map<int, HANDLE> MyMap;

我必须使用 WaitForMultipleObjects() 函数等待这些句柄对象。为此,我必须将 map 内容作为 HANDLE 对象的数组获取。(如果它是一个 vector ,那么我们可以使用 vector.data() 函数)。我正在寻找这样一个简单的函数来实现这一点。

最佳答案

假设您使用的是较新版本的 VC++(2010 或 2012)或 g++(4.6 或更新版本),您应该能够执行如下操作:

std::vector<HANDLE> handles;

std::transform(your_map.begin(), your_map.end(),
    std::back_inserter(handles),
    [](std::pair<const int, HANDLE> const &i) { return i.second; });

关于c++ - 获取 map 内容作为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11624273/

相关文章:

c++ - 段错误 : Why?

c++ - 初始化 basic_string C++

c++ - partial_sum,目标范围与输入相同。保证工作?

具有两个或多个键的 Pandas 字典

python - 如何从现有 key 设置新 key :value pair of a defaultdict?

python - 在 C++ 中使用 pybind11 包装器时出现段错误

c++ - 特化和重载有什么区别

c++ - 使用函数指针自动填充 std::map

c++ - 成员函数不能为 set iterator 和 const_iterator 的输入重载(但可以为其他 STL 迭代器重载)

java - 将对象属性映射到 Java 映射的最简单方法