Почему std :: set :: Содержит () дважды вызывает оператора космического корабля на целевом элементе?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Почему std :: set :: Содержит () дважды вызывает оператора космического корабля на целевом элементе?

Сообщение Anonymous »

Код: Выделить всё

#include 
#include 

struct Num {
auto operator  (const Num& other) const{
std::println ("{}  {}", val, other.val);
return val  other.val;
};
int val;
};

int main() {
std::set s{{1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}};
std::println("------------");
return !s.contains({8});
}
< /code>
Это распечатано (среди прочего): < /p>
...
8  8
7 
8  8
Я ожидаю, что после вызова оператора космического корабля с аргументами (8,8) SET знает, что он нашел элемент и может вернуть true сразу.

Подробнее здесь: https://stackoverflow.com/questions/797 ... et-element
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»