【问题标题】:C++/CX way of iterating Map<String^, Object^>^?C++/CX 迭代 Map<String^, Object^>^ 的方式?
【发布时间】:2013-05-12 17:31:36
【问题描述】:

我有一个Map&lt;String^, Object^&gt;^ 类型的对象。如何以 C++/CX 方式进行迭代?我正在尝试使用迭代器,但我不清楚语法。文档没有提供示例。

【问题讨论】:

  • 它是 C++/CX(Windows 应用商店应用程序)。我有 IMap 类型,它的迭代器需要一些 IKeyValuePair 类型。我对 C++ 不太熟悉,所以鉴于没有给出示例,这很难弄清楚。

标签: windows windows-store-apps c++-cx


【解决方案1】:

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。

【讨论】:

  • “别忘了包含 collection.h”——这是救命稻草。
猜你喜欢
  • 2013-12-18
  • 1970-01-01
  • 2018-09-22
  • 1970-01-01
  • 2020-08-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-30
  • 1970-01-01
相关资源
最近更新 更多