4

我有一个类型为Map<String^, Object^>^. 如何以 C++/CX 方式迭代?我正在尝试使用迭代器,但我不清楚语法。文档没有提供示例。

4

1 回答 1

13

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。

于 2013-05-18T17:17:57.547 回答