我有一个std::map
对象HANDLE
,
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; });