1 / 1 / 1
Регистрация: 16.03.2016
Сообщений: 3
1

Как сравнивать структуры

01.04.2016, 23:03. Показов 17313. Ответов 2

Author24 — интернет-сервис помощи студентам
Есть структура например

C++
1
2
3
4
5
6
7
8
9
10
struct TIME {                   
    int min;
    int sec;
};
 
TIME A={10,15},B;
 
B=A;   //можно сделать
 
if(A==B)    // Не работает
Как можно сравнить их, не сравнивая отдельно каждый элемент. Спасибо за ответы!)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.04.2016, 23:03
Ответы с готовыми решениями:

Возможно ли сравнивать структуры?
Здравствуйте, возможно ли сравнивать структуры? #include<stdio.h> typedef char str; struct inf{...

Как сравнивать char '\'?
Компиляция следуещего кода приводит к ошибке: if(field == field && field == '\') turnOn = true;...

Как сравнивать 2 текста?
У меня есть 2 текстовых файлов.В етих файлах одиноковые слова, только в одном ети слова начинаютса...

как сравнивать даты?
Имеется текстовый файл, в нем список учебных дней когда есть математика, в формате...

2
-42 / 17 / 15
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
02.04.2016, 02:01 2
C++
1
2
3
bool operator == (const TIME & timeB) const {
   return this->min == timeB.min && this->sec == timeB.sec;
}
Добавлено через 45 минут
//Напишу попроще без перегрузки

TIME A = {10,15},B;

Объявил нормально но неправильно сравнил

C++
1
2
3
4
5
6
7
8
    if (A.min == A.sec) 
    {
        cout << "Равна";
    }
    else 
    {
        cout << "НеРавна";
    }
0
Вездепух
Эксперт CЭксперт С++
11692 / 6371 / 1723
Регистрация: 18.10.2014
Сообщений: 16,055
02.04.2016, 02:41 3
Цитата Сообщение от andrik740 Посмотреть сообщение
Как можно сравнить их, не сравнивая отдельно каждый элемент.
Как ни верти, а придется сравнивать отдельно каждый элемент. Компилятор С++ не генерирует неявных операторов сравнения для классов. Сравнение можно (нужно) завернуть в оператор (см. ответ Shamsik), но писать такой оператор все равно придется самому.

Можно отказаться от использования своего типа и перейти на std::pair

C++
1
    typedef std::pair<int, int> TIME;
(или на std::tuple). Тогда оператор сравнения вам будет предоставлен готовый. Но имена полей в TIME получатся не такие говорящие, как они были у вас: first and second в случае std::pair.

Выбирайте, что вам больше нравится.
1
02.04.2016, 02:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.04.2016, 02:41
Помогаю со студенческими работами здесь

Как сравнивать ip-адреса (+)
Всем привет! В общем задача у меня стоит такая: есть список диапазонов ip-адресов, напрмер:...

Подскажите как сравнивать
Подскажите как сравнивать между собой введенные значения.(в структурах)

Как сравнивать строки?
Что-то смотрю в туториалы, но ничего не выходит. Как написать сравнение строк?...

Как сравнивать строки?
Ребят, а может вы знаете, как в этом языке сравнивать строки? походу просто string1&gt;string2 не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru