c++ - “地图”中的方括号是什么意思实例[数量特征];"
问题描述
初始化地图时 [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;
解决方案
“<code>map <string, int> instance[numberFeatures];”中的方括号是什么意思</p>
Type name[N]
是一个变量的声明。N
它声明了一个类型为 的对象数组Type
。数组变量 ( N
) 的大小必须是 C++ 中的编译时间常数,否则程序格式错误。name
是变量的名称。
map <string, int>
是一种类型。是类型对象map <string, int> instance[numberFeatures];
数组的声明。变量的名称是。但是在示例中,不是编译时间常数值,因此示例程序格式错误。numberFeatures
map <string, int>
instance
numberFeatures+1
稍后在代码中,它使用 instance[i][temp] = j 其中 i,j 是整数, temp 是字符串。这也意味着什么?
首先将下标运算符应用于数组。结果是i
对数组的第 th(从零开始)元素的引用。然后将下标运算符应用于结果元素。由于元素的类型为map <string, int>
,这将调用map
模板的重载下标运算符。最后,j
赋值给第二个下标运算符的结果。
推荐阅读
- linux - 使用服务在 .bash 中启动 .sh 或在服务中启动 .sh 文件
- typescript - 异步函数需要 Visual Studio 2019 中的“Promise”构造函数
- curity - 如何确定多久前在 Curity 中发布了刷新令牌
- python - python装饰器包装两次?
- xcode - XCode 12.1 自动完成和 TextHighliting 错误?
- python - 为什么我不能使用“as”语法在 Python 中导入函数?
- laravel-nova - Laravel Nova 中另一个表的字段
- node.js - 如何重写成json文件nodejs?
- javascript - 如何找到垂直于线中点的点的 3D 坐标
- linux - 连接多个具有相同 HEADER 格式的数据集