实例[数量特征];",c++,syntax,maps"/>

首页 > 解决方案 > “地图”中的方括号是什么意思实例[数量特征];"

问题描述

初始化地图时 [numberFeatures] 是什么意思。我在任何地方都找不到答案?稍后在代码中,它使用 instance[i][temp] = j 其中 i,j 是整数, temp 是字符串。这也意味着什么?

我在互联网上查找了所有地图教程,但似乎没有一个包含 [] 符号

int numberFeatures; //number of features in the dataset
  string data;
  bool consistent;

  cin >> numberFeatures; //input the number of features

  vector <int> numberAttributes(numberFeatures); //number of attributes 
  for each feature.
  map <string, int> instance[numberFeatures+1];

  for(int i=0; i<numberFeatures; i++)
  {
    cin >> numberAttributes[i];

    for(int j=1; j<=numberAttributes[i]; j++)
    {
      string temp;
      cin>> temp;
      instance[i][temp] = j; //map attribute name with number
    }
  }

  instance[numberFeatures]["no"] = 0;
  instance[numberFeatures]["yes"] = 1;

标签: c++syntaxmaps

解决方案


“<code>map <string, int> instance[numberFeatures];”中的方括号是什么意思</p>

Type name[N]是一个变量的声明。N它声明了一个类型为 的对象数组Type。数组变量 ( N) 的大小必须是 C++ 中的编译时间常数,否则程序格式错误。name是变量的名称。

map <string, int>是一种类型。是类型对象map <string, int> instance[numberFeatures];数组的声明。变量的名称是。但是在示例中,不是编译时间常数值,因此示例程序格式错误。numberFeaturesmap <string, int>instancenumberFeatures+1

稍后在代码中,它使用 instance[i][temp] = j 其中 i,j 是整数, temp 是字符串。这也意味着什么?

首先将下标运算符应用于数组。结果是i对数组的第 th(从零开始)元素的引用。然后将下标运算符应用于结果元素。由于元素的类型为map <string, int>,这将调用map模板的重载下标运算符。最后,j赋值给第二个下标运算符的结果。


推荐阅读