2011-05-23 96 views
-3

我创建了一个动态内存为s_points,其类型为PointListPointList是整数值的向量。我通过从另一个数据列表中获取一些值来附加到s_points。现在,我想我的想象来s_points检查它是否更新或没有,但我有一个错误:为什么打印对象失败时出现“操作符<<'”不匹配错误?

no match for 'operator<<' in 'std::cout << (&z)->__gnu_cxx:: 
__normal_iterator<_Iterator, _Container>::operator* 
[with _Iterator = Number*, _Container = std::vector<Number, 
std::allocator<Number> >]()' 

这里是我的代码:

MyPoints::iterator point; 
PointList *s_points = new PointList; 
for (point=my_points.begin();point!=my_points.end();point++){ 
    s_points->push_back(point->Attribute(NumberTag)); 
} 
PointList::iterator z; 
for(z=s_points->begin();z!=s_points->end();z++){cout<<*z<<" ";} 

请帮助我了解这个错误。

+0

Plz首先纠正这个问题。你到底在问什么?你想要做什么? – Ryan 2011-05-23 01:19:17

+0

你需要告诉我们更多关于'PointList'的信息。它是'typedef'到'vector '吗?我想不是。也许一个'矢量'?如果是这样,你需要告诉我们更多关于'Number'的信息。为我们提供更多的代码,尤其是您为自己定义的所有类型。 – 2011-05-23 01:29:23

+0

@亚伦,是的,你正在写。它是矢量。我使用z-> Number(),然后我得到了值。感谢您的建议 – niro 2011-05-23 01:43:05

回答

1

该错误本身就说明了一切。您没有为Number定义operator<<()

相关问题