Форум программистов, компьютерный форум CyberForum.ru

Сравнение массивов объектов - C++

Восстановить пароль Регистрация
 
Просто Ромашка
0 / 0 / 0
Регистрация: 08.11.2014
Сообщений: 15
27.10.2015, 17:49     Сравнение массивов объектов #1
Здравствуйте, в процессе выполнения задания столкнулась с проблемой - нужно сравнить два массива с объектами. На ob1== ob2 компилятор ругается. Подскажите, пожалуйста, что использовать или где можно почитать об этом
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2015, 17:49     Сравнение массивов объектов
Посмотрите здесь:

Сравнение объектов класса C++
Сравнение объектов template C++
Сравнение 2х массивов в С++ C++
C++ Сравнение объектов string
C++ Сравнение массивов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ishellstrike
77 / 13 / 7
Регистрация: 23.10.2015
Сообщений: 83
27.10.2015, 18:12     Сравнение массивов объектов #2
А что за объекты? Определенные Вами? Тогда нужно определить оператор сравнения двух объектов
C++
1
bool operator == (const YourType& first, const YourType& second)
Просто Ромашка
0 / 0 / 0
Регистрация: 08.11.2014
Сообщений: 15
27.10.2015, 18:46  [ТС]     Сравнение массивов объектов #3
Создаю класс и объекты типа класса
ishellstrike
77 / 13 / 7
Регистрация: 23.10.2015
Сообщений: 83
27.10.2015, 18:48     Сравнение массивов объектов #4
Просто Ромашка, значит в этом классе нужно определить оператор сравнения ==
Просто Ромашка
0 / 0 / 0
Регистрация: 08.11.2014
Сообщений: 15
27.10.2015, 18:52  [ТС]     Сравнение массивов объектов #5
Цитата Сообщение от ishellstrike Посмотреть сообщение
bool operator == (const YourType& first, const YourType& second)
получается в классе прописать эту строчку?)
ishellstrike
77 / 13 / 7
Регистрация: 23.10.2015
Сообщений: 83
27.10.2015, 18:54     Сравнение массивов объектов #6
Просто Ромашка, ну и описание для нее
C++
1
2
3
4
bool operator == (const YourType& first, const YourType& second)
{
return first.some_field == second.some_field && first.other == second.other; 
}
Просто Ромашка
0 / 0 / 0
Регистрация: 08.11.2014
Сообщений: 15
27.10.2015, 19:02  [ТС]     Сравнение массивов объектов #7
http://www.cyberforum.ru/attachment....1&d=1445961644
что я делаю не так?)
Миниатюры
Сравнение массивов объектов  
ishellstrike
77 / 13 / 7
Регистрация: 23.10.2015
Сообщений: 83
27.10.2015, 19:25     Сравнение массивов объектов #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ну дело в том, что оператор == может быть описан в классе, тогда он будет унарный
C++
1
2
3
4
5
6
YourType { 
bool operator == (const YourType& other)
{
return field == other.field;
} 
};
или вне класса
C++
1
2
YourType{}; 
bool operator == (const YourType& first, const YourType& second) ...
Просто Ромашка
0 / 0 / 0
Регистрация: 08.11.2014
Сообщений: 15
27.10.2015, 19:56  [ТС]     Сравнение массивов объектов #9
Спасибо)
daslex
1084 / 494 / 101
Регистрация: 02.08.2011
Сообщений: 2,408
27.10.2015, 19:57     Сравнение массивов объектов #10
У Вас какой объект? Есть ли указатели в классе? Как вы создаете объекты (на стеке или в куче)?
Что значит сравнить массив с объектами? Какие критерии сравнения, в каком случае массив равен объекту?

Вы слишком мало информации дали, чтобы Вам хорошо на это ответили.
Просто Ромашка
0 / 0 / 0
Регистрация: 08.11.2014
Сообщений: 15
27.10.2015, 20:10  [ТС]     Сравнение массивов объектов #11
как много вопросов))
Задание
Построить класс для работы с односвязным списком. Создать два списка: List1 и List2. Проверить, содержатся ли элементы списка List1 в списке List2 в указанном списком List1 порядке.
Вот что я сделала
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#include <locale.h>
using namespace std;
 
class samp {
    int a;
    int b;
public:
        bool operator == (const samp& other)
        {
            return a == other.b;
        }
 
 
 
    void set_a()
    {    
        a = rand() % 55 - 25;
    }
    void set_b()
    {
        b = rand() %50-20;
    }
    int get_a() { return a; }
    int get_b() { return b; }
};
    
    
    int main()
    {
        setlocale(LC_ALL, "rus");
        srand(time(0));
        samp ob1[5], ob2[10],ob3[4];
        int i, j, h = 0;;
        for (i = 0; i<5; i++)
            ob1[i].set_a();
        for (i = 0; i < 5; i++) 
            cout << ob1[i].get_a() << " "; 
        cout << endl;
        for (j = 0; j<10; j++) 
            ob2[j].set_b();
        for (j = 0; j < 10; j++) 
            cout << ob2[j].get_b() << " "; 
        cout << endl;
        for (i = 0; i < 10; i++)
    {
            if (ob1[i] == ob2[i]) h++;
            else h = 0;
    }
        if (h == 0) cout << "Повторений нет!" << endl;
        else cout << "Повторения есть!" << endl;
        _getch();
        return 0;
    }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2015, 20:27     Сравнение массивов объектов
Еще ссылки по теме:

Сравнение объектов C++
Сравнение массивов C++
Сравнение массивов C++

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

Или воспользуйтесь поиском по форуму:
daslex
1084 / 494 / 101
Регистрация: 02.08.2011
Сообщений: 2,408
27.10.2015, 20:27     Сравнение массивов объектов #12
Пока что можно отложить вопрос сравнения. У Вас изначально односвязный список не строится. У Вас обычный массив. Вы заполняете первый элемент каждого из массивов и используете только этот первый элемент каждого из массивов.

Добавлено через 2 минуты
точнее только один, а не то, чтобы первый.
Yandex
Объявления
27.10.2015, 20:27     Сравнение массивов объектов
Ответ Создать тему

Метки
массив объектов, ООП
Опции темы

Текущее время: 12:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru