我有std::map
个HANDLE
个对象,
std::map<int, HANDLE> MyMap;
我必须使用WaitForMultipleObjects()函数等待这些句柄对象。为此,我必须将地图内容作为HANDLE对象的数组。(如果它是一个向量,那么我们可以使用vector.data()函数)。我正在寻找这样一个简单的功能来实现这一目标。
答案 0 :(得分:6)
假设您使用的是最新版本的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; });
答案 1 :(得分:1)