Содержание
Я получаю сообщение об ошибке при попытке скомпилировать мой код, который говорит:
Я не понимаю, что я делаю неправильно. Поэтому мой вопрос в том, что не так и как это исправить. Также задание использовать
Так что эту часть я не могу изменить.
Решение
В верхней части файла, после #include "stdafx.h" положил
Кроме того, вы можете поместить эту строку в файл stdafx.h ,
В общем, всякий раз, когда вы видите сообщение об ошибке, в котором говорится, что чего-то не хватает, смотрите, присутствуют ли все необходимые include-файлы. Сообщение может быть «оператор не найден», «неопределенный класс», «неполный тип» или что-то еще.
не пойму, почему remove_if работает как надо, а remove выдают ошибку.
2 ответа 2
Добавьте оператор сравнения, вроде
Что значит "почему"? Я не знаю, что такое "xxx" , но скорее всего в сообщении об ошибке у вас ясно сказано, что оператора == для сравнения Element с Element у вас нет. Потому и ошибка.
Возможно также, что оператор-то вы написали, но, как часто бывает, пренебрежение правилами константной корректности сделало его невызываемым в данном случае.
Всё ещё ищете ответ? Посмотрите другие вопросы с метками c++ list stl или задайте свой вопрос.
Связанные
Похожие
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
дизайн сайта / логотип © 2019 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2019.11.15.35459
Подскажите, пожалуйста в чем ошибка:
Получаю ошибку: бинарный ">>": не найден оператор, принимающий правый операнд типа "T" (или приемлемое преобразование отсутствует). Заранее благодарен за помощь.
1 ответ 1
Старайтесь приводить полное сообщение об ошибке. В дополнение к тому, что вы процитировали, компилятор вам также сказал, что ошибка возникает именно для T == std::string .
Ошибка возникает потому, что вы забыли сделать