【问题标题】:Why does printing an object fail with a "no match for 'operator<<'" error?为什么打印对象失败并出现“不匹配'operator<<'”错误?
【发布时间】:2011-05-23 01:17:07
【问题描述】:

我创建了一个动态内存为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<<" ";}

请帮助我理解这个错误。

【问题讨论】:

  • 请先纠正这个问题。你到底在这里问什么?你想做什么?
  • 您需要告诉我们更多关于PointList的信息。是typedefvector&lt;int&gt; 吗?我想不是。也许是vector&lt;Number&gt;?如果是这样,您需要告诉我们更多关于Number 的信息。给我们更多的代码,尤其是你自己定义的所有类型。
  • @Aaron,是的,你在写。它是矢量。我使用 z->Number(),然后我得到了值。感谢您的建议

标签: c++ iostream


【解决方案1】:

错误不言自明。您没有为Number 定义operator&lt;&lt;()

【讨论】:

    猜你喜欢
    • 2023-03-15
    • 2019-03-18
    • 2013-04-08
    • 1970-01-01
    • 2015-03-27
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多