我目前正在编写一些遍历一个矢量的代码,并为该矢量中的每个元素调用一个简单的打印方法;但是,我有一个向量的经验非常有限,我有一些问题让编译器接受这个代码一个特定段:通过指针遍历一个矢量
std::vector<Buyer *>:: iterator it;
Buyer *b;
for(it = buyers->begin(); it != buyers->end(); ++it) {
b = *it;
cout << b->getName();
}
,买家是包含买家指针的向量。我宁愿使用一个数组来达到这个目的,但因为我需要为这个特定点使用一个向量,所以我不确定如何遍历它并最终尝试迭代器来完成。
那跳起的错误信息是:
Retailer.cpp:37:17: error: base operand of ‘->’ is not a pointer
for(it = buyers->begin(); it != buyers->end(); ++it) {
^
Retailer.cpp:37:40: error: base operand of ‘->’ is not a pointer
for(it = buyers->begin(); it != buyers->end(); ++it) {
据我所知,有没有什么地方显然是一个指针在那件事情我不提领,但我不知道这元素或所在我应该解引用它...对于一个对C++向量/迭代器没有多少经验的程序员的任何想法?
“买家”声明是什么? – MooseBoys
买家实际上是继承了这个类,但它基本上宣称为矢量买家 –
Vincents
*基本上*声明为矢量?你可以说得更详细点吗?你的问题很可能是由于声明的细节。 – MooseBoys