C++有一个类似于Objective-C的NSDictionary的字典吗?

unw*_*guy 4 c++ cocoa dictionary objective-c nsdictionary

正如标题所说,是否存在类似于Objective-C NSDictionaryfor C++ 的字典?我只需要一个包含(键,值)对的数据结构,并且可以添加和检索.

Swi*_*tch 10

使用std :: map.

例如,要从整数映射到std :: string:

#include <map>
#include <string>
#include <iostream>

int main() {
  std::map<int, std::string> my_map;
  my_map[3] = "hello";
  my_map[4] = "world";

  std::cout << my_map[3] << " " << my_map[4] << std::endl;

  return 0;
}
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以在C++中使用std :: map或std :: unordered_map(NSDictionary是无序的),但是有一个主要区别.由于标准模板库使用值类型的模板,因此对于键和值,映射将锁定为一种类型.使用NSDictionary,因为所有内容都基于NSObject,您可以混合和匹配类型.

如果您的数据是同质的,那么您已经完成了设置.如果您需要混合类型行为,则需要创建一个自定义类,该类可以包含或派生到您希望使用的所有类型中.