以数组形式获取地图的内容

Get contents of a map as an array

本文关键字:地图 获取 数组      更新时间:2023-10-16

我有一个CCD_ 1的CCD_,std::map<int, HANDLE> MyMap;

我必须使用WaitForMultipleObjects()函数等待这些句柄对象。为此,我必须将地图内容作为HANDLE对象的数组。(如果它是一个向量,那么我们可以使用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; });
  • 根据地图的大小在矢量中保留空间。请参阅"std::vector::reserve"成员
  • 使用std::copy和std::back_inserter