如何解决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
相乘的引用。
最有可能找到答案的地方:
Student operator*(const Student&,const Student&) {
// the answer to your question is in here
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。