c++ - 寻找部分代码的解释
问题描述
我有这个功能,一个由 id 代表的学生将在特定学期添加一门课程。这段代码是正确的,但我不明白他做的那部分
for (size_t i = 0; i < (*iteratorVectorP).size(); i++) ...
void add_course(map<int, map<int, vector<course *> * > > &DB, int
semester, int id, course c)
{
auto iterator = DB.find(id); //find id as key, set map to value
vector<course*> *pointer = new vector<course*>;
if (iterator != DB.end())
{
auto iterator1 = ((*iterator).second).find(semester); //find
semester as key, set vector to value
if (iterator1 == (*iterator).second.end()) //if semester does not exist
{
pointer->push_back(new course(c));
(iterator->second)[semester] = pointer;
}
else //if semester exist
{
auto iteratorVectorP = (iterator->second)[semester];
// i do not understand what his doing here
for (size_t i = 0; i < (*iteratorVectorP).size(); i++)
{
if (c == *(*iteratorVectorP)[i])
{
return; //exit when class exist
}
else
{
(*iteratorVectorP).push_back(new course(c));
return;
}
}
}
}
}
解决方案
看起来 iteratorVectorP 是一个指针,所以调用 (*iteratorVectorP).size() 将得到它指向的值。
推荐阅读
- python - 对二进制值的行排序
- ssl - 使用 W5500 在 STM32F303RC 中实现 TLS over HTTP
- php - WooCommerce 从属性中获取自定义字段
- flutter - 如何在颤动中进入表单按钮 OnPressed()
- python - 从旧数据帧创建一个新数据帧,其中新数据帧包含旧数据帧中不同位置的列的行平均
- python - R中的“irr”包计算的加权Kappa是否错误?
- git - rsync / git / ssh 问题 macos 11.3.1 / Big Sur
- html - 滑入、等待、滑出 CSS 动画
- asp.net-core - 无法使用 asp.net 核心中的角色连接到 DynamoDB 和 S3
- ruby-on-rails - sortablejs 方法不可用