首页 > 解决方案 > 如何使用 C++ 中的结构制作地图?

问题描述

我想做的是使用 C++ 结构来制作一个简单的地图。

例如,

如果我有

struct Map { char name; int age };
Map MapObj[] = { {'charles', 10}, {'kate', 20}, {'nate', 10} } 

如何使用地图查看凯特的年龄?我试过 MapjObj['kate'] 但它不起作用。如何使用名称访问年龄?

标签: c++dictionarystructusing

解决方案


您可以使用<algorithm>C++ 提供的工具,特别是 - std::find; 就像是:

auto pos = std::find(
    std::begin(MapOjb), 
    std::end(MapObj),
    [](const Map& m) { return m == "kate"}
);

但请注意:

  1. name必须是 anstd::string或 a char *(在后一种情况下,您将使用strcmp(),而不是纯字符串比较)。
  2. Map并且MapObj这里的名字选择非常糟糕......

将您创建的数组的开头和结尾以及 lambda 函数传递给它。


推荐阅读