C++中的动态结构

bey*_*ran 1 c++ struct

对于C++中的项目(我对这种语言比较新)我想创建一个存储给定单词和多个类的计数的结构.例如:

struct Word
{
  string word;

  int usaCount     = 0;
  int canadaCount  = 0;
  int germanyCount = 0;
  int ukCount      = 0;
}
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我使用了4类国家.事实上,有数百个国家级.

我对此有疑问如下:

  1. 有没有办法动态生成这个国家/地区列表?(例如,有一个国家的文件被读取,并在此基础上生成此结构)
  2. 这个结构的拟合应该是一个函数,如果看到类,它会增加计数.是否有一种方法可以使这种"动态",我的意思是我想避免每个类的一个函数(eG:incUsa(),incCanada(),incGermany()等)
  3. 因为我不习惯C++:这甚至是它的意识形态方法吗?也许有更好的数据结构或替代(更合适)的方式来解决问题.

提前致谢.

Cha*_*via 6

在C++中class,struct定义是在编译时静态创建的,因此您不能struct在运行时添加新成员.

对于动态数据结构,您可以使用关联容器,如std::map:

std::map<std::string, int> count_map;
count_map["usa"] = 1;
count_map["uk"] = 2;
Run Code Online (Sandbox Code Playgroud)

等等...

您可以count_map在您的定义中包含成员struct Word:

struct Word
{
  std::string word;
  std::map<std::string, int> count_map;
};
Run Code Online (Sandbox Code Playgroud)