c++ - c ++遍历列表[然后操作来自同一类的不同迭代器]
问题描述
假设我们有一个名为Student
并且data
是列表的类。
std::list<Student>::iterator<Student> it;
for(it = data.begin(); it != data.end(); ++it){
std::cout<<(*it)->name;
it->print();
}
std::list<Student>::iterator<Student> it2;
for(it2 = data.begin(); it2 != data.end(); ++it2){
std::cout<<(*it2)->name;
it2->print();
}
mult
当我们对从两个不同列表中获得的迭代器进行加法(或乘法)时, 代表什么。我的意思是如果我们乘以*it
和会发生什么*it2
for(it = data.begin(); it != data.end(); ++it){
Student mult = (*it) * (*it2);
}
你能从概念上举一个例子吗?
解决方案
如果编译:
Student mult = (*it) * (*it2);
定义了一个operator*
重载Student
- 但它与迭代器没有任何关系。迭代器被取消引用 ( *
),因此您有两个对Student
s 的引用被相乘。
最有可能找到答案的地方:
Student operator*(const Student&, const Student&) {
// the answer to your question is in here
}
推荐阅读
- laravel - 手动触发 Stripe 订阅 webhook
- latex - 如何在 LaTeX 中删除备用对正
- javascript - 在使用 vuetify 上传之前预览图像“
“? - c++ - 从文件中获取不同类型的项目并将它们添加到数组中
- amazon-web-services - 在 Jenkins ZIP 中包含 Procfile 和 .ebextension 文件夹
- java - 具有记录级别锁定的集合?
- reactjs - 为什么我收到错误“TypeError:this.state.users.map 不是函数”
- javascript - 明确设置值时,Javascript函数返回未定义
- python - Python - 将`set.union`分配为类属性
- python - 我似乎不知道如何在类中转换方法