Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.08.2011, 18:17   #1
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию vector, find. "binary '==': no operator found which takes a left-hand operand of type ..."

Не понимаю, что от меня компилятор хочет =\ Вроде есть оператор ==
Код:
struct CharInfo
{
	char c;
	CvMoments mms;
	CvHuMoments hus;

	int operator > (CharInfo &a)
	{
		return c>a.c;
	}
	int operator == (CharInfo &a)
	{
		return c==a.c;
	}
};

...
vector<CharInfo> chars;
cout << (int)(chars.end()!=find(chars.begin(), chars.end(), b)) << endl;
...
TwiX вне форума Ответить с цитированием
Старый 30.08.2011, 18:46   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

А у b какой тип? Покажите больше коду. Да, и если функция возвращает Истину или Ложь,то принято помечать её возвращающей bool, а не int
netrino вне форума Ответить с цитированием
Старый 30.08.2011, 19:05   #3
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Между вектором и cout:
Код:
CharInfo a,b;
a.c='c';
b.c='c';
chars.push_back(a);
А bool - это просто переименованный int. Некоторым удобней писать bool.
TwiX вне форума Ответить с цитированием
Старый 30.08.2011, 19:11   #4
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2TwiX
Цитата:
template<class InputIterator, class T>
InputIterator find ( InputIterator first, InputIterator last, const T& value )
{
for ( ;first!=last; first++) if ( *first==value ) break;
return first;
}
Цитата:
struct CharInfo
{
char c;
CvMoments mms;
CvHuMoments hus;

int operator > (CharInfo &a)
{
return c>a.c;
}
int operator == (const CharInfo &a)
{
return c==a.c;
}
};
пс. в теге code текст не выделяется цветом. беда
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance

Последний раз редактировалось pproger; 30.08.2011 в 19:13.
pproger вне форума Ответить с цитированием
Старый 30.08.2011, 19:13   #5
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Спасибо, помогло)
TwiX вне форума Ответить с цитированием
Старый 30.08.2011, 19:30   #6
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от TwiX Посмотреть сообщение
А bool - это просто переименованный int. Некоторым удобней писать bool.
Я бы так не сказал. И что важно, стандарт тоже такого не говорит, типы int и bool различны, хоть и приводятся друг к другу неявно. Да и хотя бы с точки зрения семантики, лучше писать bool, а не int для ф-ций, возвращающих булево значение.
netrino вне форума Ответить с цитированием
Старый 30.08.2011, 20:28   #7
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Код:
In Visual C++4.2, the Standard C++ header files contained a typedef that equated bool with int. In Visual C++ 5.0 and later, bool is implemented as a built-in type with a size of 1 byte.
Это из msdn. Теперь это char. GJ Microsoft :D. Как по мне, так тот же char имеет куда больший потенциал, хоть и полностью включает все возможности bool'a =\
TwiX вне форума Ответить с цитированием
Старый 30.08.2011, 20:49   #8
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2TwiX
Цитата:
Visual C++4.2
без комментариев

Цитата:
Теперь это char
что значит теперь? теперь это встроенный тип, а не синоним инта
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VS2008: "Binary was not built with debug informat": Компиляция vncviewer.exe ( из TightVNC ) malor Visual C++ 1 14.06.2011 09:30
Operator not applicable to this operand type welcomeTo Помощь студентам 9 06.06.2011 21:01
Простая реализация собственного класса "vector" Arnezami Общие вопросы .NET 8 27.11.2010 22:51
Различие смысла в type "type" Alex Cones Общие вопросы Delphi 5 18.04.2010 23:57
ошибка - [Error] Unit1.pas(325): Operator not applicable to this operand type blackstersl Общие вопросы Delphi 6 27.08.2008 13:17