Я понимаю, что эта ошибка, как правило, связана с некоторыми проблемами синтаксиса или типа, но я не уверен, как решить эту проблему. Я думаю, это может быть связано с тип findRt.ОШИБКА: нет соответствия для «operator <<" in 'std :: cout
vector<triangle> findRightTriangles(unsigned long l, unsigned long h) {
<triangle> retval; // storage for return value.
triangle t;
double what;
for(t.s1 = 3; t.s1 <= h; t.s1++) {
for(t.s2 = t.s1; t.s2 <= h; t.s2++) {
what = sqrt((t.s1*t.s1) + (t.s2*t.s2));
t.s3 = static_cast<unsigned int>(what);
if(((t.s1*t.s1)+(t.s2*t.s2)) != (t.s3*t.s3)
|| t.s1+t.s2+t.s3 < l
|| t.s1+t.s2+t.s3 > h) {
continue;
}
else if(t.s1+t.s2+t.s3 <= h
&& t.s1+t.s2+t.s3 >= l
&& t.s1+t.s2 > t.s3
&& ((t.s1*t.s1)+(t.s2*t.s2)) == (t.s3*t.s3)) {
retval.push_back(t);
}
}
}
return retval;
}
int main(){
unsigned long min, max;
cin >> min >> max;
//Here is the problem:
cout << findRightTriangles(min, max) << endl;
return 0;
}
Как вывести вектор с помощью COUT?
Что такое 'треугольник'? У этого есть перегрузка для 'operator <<'? –
Вы проверили это? http://stackoverflow.com/questions/5707827/no-match-for-operator-in-stdcout – orezvani