我有一个Map<String^, Object^>^
类型的对象。如何以C ++ / CX方式迭代?我试图使用迭代器,但我不清楚语法。文档没有提供示例。
答案 0 :(得分:12)
C ++ / CX集合遵循与c ++集合相同的原则,因此它们具有迭代器和开始,结束函数。
IMap<Platform::String^, Platform::Object^>^ map = ref new Map<Platform::String^, Platform::Object^>();
map->Insert("key1", "val1");
map->Insert("key2", 2.0f);
// Exactly like you would iterate over a map, but instead of std::pair you have IKeyValuePair
std::for_each(begin(map), end(map), [](IKeyValuePair<Platform::String^, Platform::Object^>^ pair)
{
// do stuff
auto key = pair->Key;
auto value = pair->Value;
});
for( auto pair : map )
{
// do stuff
auto key = pair->Key;
auto value = pair->Value;
}
另外,不要忘记包含collection.h并使用命名空间Platform :: Collections。