尝试使用矢量迭代器访问对象

Trying to access an object with a vector iterator

本文关键字:迭代器 访问 对象      更新时间:2023-10-16

我是迭代器的新手,我遇到了一个问题。

这是我创建向量并将一些指针推送到对象的代码的一部分:

vector<MyClass*> MyVector;
MyVector.push_back(new object); 
MyVector.push_back(new object); 
MyVector.push_back(new object); 
vector<MyClass*>::iterator temp;
temp = MyVector.end(); //because I want to use a function for the last one
Sum += temp->get_num(); //function that returns an object member

通过这个,我想实现获取和求和存储在对象中的一些数字。但似乎它不会编译。

错误如下。

240 27 ~\test.cpp [错误] 在 '* temp.__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator->>()' 中请求成员 'get_num',其指针类型为 'MyClass*'(也许你的意思是使用 '->'?

在使用

MyClass 对象之前,应首先取消引用指针。

其次,不应取消引用结束迭代器 (http://www.cs.northwestern.edu/~riesbeck/programming/c++/stl-iterators.html)。

第三,编译器应该在"+="标记之前警告您预期的初始值设定项。

double sum = 0.0;
sum += (*temp)->get_num();