![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| oshilan |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 21.3.2010 Репутация: нет Всего: 0 |
Нужно подсчитать, сколько элементов в векторе с помощью функции std::count. У меня выбивало ошибку ниже, но я переопределил тот ошибочный оператор, но программа всё равно неправильно работает (кол-во = 0). Помогите, пожалуйста, переопределить оператор ==, чтоб всё работало.
Ошибка:
Программа:
|
||||
|
|||||
| newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 4 Всего: 19 |
Каунт считает количество попаданий элемента в последовательность. Третий аргумент - это и есть тот элемент. У тебя правильно выдает ноль, потому что все элементы вектора больше этого элемента, т.к. твой оператор== для всех них возвращает ложь.
Добавлено через 2 минуты и 22 секунды Если что, ощий размер вектора можно узнать через std::vector::size(). -------------------- You're face to face With man who sold the world |
|||
|
||||
| oshilan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 21.3.2010 Репутация: нет Всего: 0 |
newbee, спасибо конечно, но у меня что-то вообще странное
|
|||
|
||||
| newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 4 Всего: 19 |
Ты хочешь узнать, сколько одинаковых окон находится у тебя в векторе? Ладно, давай мы не будем угадывать, а ты сам все расскажешь))
-------------------- You're face to face With man who sold the world |
|||
|
||||
| oshilan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 21.3.2010 Репутация: нет Всего: 0 |
newbee, сейчас выложу, куски
Добавлено через 7 минут и 14 секунд Ну, где-то так (все нужные хедеры и пространства прописаны):
|
|||
|
||||
| newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 4 Всего: 19 |
oshilan, а теперь скажи, что именно ты хочешь получить? Если просто количество элементов в векторе, используй algCntr.size().
-------------------- You're face to face With man who sold the world |
|||
|
||||
| oshilan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 21.3.2010 Репутация: нет Всего: 0 |
newbee, по заданию лабы я должен использовать алгоритм std::count для контейнера объектов класса.
|
|||
|
||||
| newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 4 Всего: 19 |
std::count внутри вызывает поочередно operator== для сравнения своего третьего аргумента с каждым членом последовательности. Так, как используешь его ты, он будет пытаться сравнить CWindow (член вектора) с int (третий аргумент std::count), это недопустимо так же как недопустимо сравнивать ежа с ужом. Можешь сделать так и сосчитать число всех элементов последовательности:
Это сообщение отредактировал(а) newbee - 20.10.2011, 20:08 -------------------- You're face to face With man who sold the world |
|||
|
||||
| oshilan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 21.3.2010 Репутация: нет Всего: 0 |
УУууУУУуууУУ, еее, молодец! newbee, ты молодец! Дешево и сердито, мне нравится
Добавлено через 2 минуты и 51 секунду newbee, главное не сказал.. СПАСИБО! ))) |
|||
|
||||
| newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 4 Всего: 19 |
oshilan, пожалуйста
-------------------- You're face to face With man who sold the world |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
сделано ей |
|||
|
||||
| oshilan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 21.3.2010 Репутация: нет Всего: 0 |
mes, будем считать, что я имел ввиду "пользователь", всмысле, ОН... А так, разумеется ОНА
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |