Почему печать объекта завершается ошибкой «нет соответствия для ‘operator<<'"?

#c #iostream

#c #iostream

Вопрос:

Я создал динамическую память as s_points , которая имеет тип PointList . PointList является вектором целых значений. Я дополнил s_points , получив некоторые значения из другого списка данных. Теперь я хочу визуализировать свой s_points , чтобы проверить, обновлен он или нет, но у меня ошибка:

 no match for 'operator<<' in 'std::cout << (amp;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<<" ";}
  

Пожалуйста, помогите мне разобраться в этой ошибке.

Комментарии:

1. Пожалуйста, сначала исправьте этот вопрос. Что именно вы здесь спрашиваете? Что вы хотите сделать?

2. Вам нужно рассказать нам больше о PointList . Это typedef to vector<int> ? Я думаю, что нет. Может быть vector<Number> ? Если это так, вам нужно рассказать нам больше о Number . Дайте нам всем больше кода, особенно для всех типов, которые вы определили сами.

3. @ Aaron, да, ты пишешь. это был вектор<Число> . я использую z-> Number(), затем я получил значение. спасибо за предложения

Ответ №1:

Ошибка говорит сама за себя. У вас не operator<<() определено для Number .