微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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 相乘的引用。

最有可能找到答案的地方:

Student operator*(const Student&,const Student&) {
    // the answer to your question is in here
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。