Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 1
Регистрация: 10.09.2014
Сообщений: 59
1

Реализовать функции пересечения и объединения массивов

22.09.2015, 22:39. Показов 1949. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Само задание: необходимо создать класс, в котором реализовать функции пересечения и объединения массивов.
У меня возникло два варианта решения( какой из них лучше - хочу спросить у вас):
1)Сделать 3 поля (arr1,arr2,arr3) и функции для пересечения и объединения arr1 и arr2 в arr3(которые будут принимать эти самые поля)
2)Сделать одно поле(arr), но 3 объекта, а в функции пересечения и объединения передавать эти объекты
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.09.2015, 22:39
Ответы с готовыми решениями:

Как разработать шаблон функции для пересечения 2-х массивов из элементов типа Т?
Как разработать шаблон функции для пересечения 2-х массивов из элементов типа Т???

Операции объединения, пересечения, включения множеств
Помогите, пожалуйста, написать программу на с++, реализующую операции объединения, пересечения,...

Проблемы с формированием объединения, пересечения множеств
Код программы: //На 3ех фермах разводят животных из списка. Определить, //какие животные есть...

Операции сравнения, объединения, пересечения множеств
Есть лаба про операции над множествами с помощью перегрузки операторов. Надо реализовать операции...

2
55 / 56 / 34
Регистрация: 29.12.2012
Сообщений: 478
22.09.2015, 23:01 2
ну мне кажется первое, как то слишком много создавать три обьекта чтобы работать, когда в одном все можно сделать!

Добавлено через 1 минуту
та и запись так будет намного проше..
0
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
23.09.2015, 06:30 3
Лучший ответ Сообщение было отмечено Sergikx как решение

Решение

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
#include <iostream>
#include <iterator>
 
//пересечение упорядоченных массивов
int* array_intersect(const int* f1, const int* l1, 
                     const int* f2, const int* l2, int* dst){
    while((f1 != l1) && (f2 != l2)){
        if(*f1 < *f2)
            ++f1;
        else {
            if(*f1 == *f2)
                *dst++ = *f1++;
            ++f2;
        }   
    }
    return dst;
}
 
//объединение упорядоченных массивов
int* array_union(const int* f1, const int* l1, 
                 const int* f2, const int* l2, int* dst){
    while((f1 != l1) && (f2 != l2)){
        if(*f1 < *f2)
            *dst++ = *f1++;
        else {
            if(*f1 == *f2)
                ++f1;
            *dst++ = *f2++;
        }   
    }
 
    while(f1 != l1)
        *dst++ = *f1++;
    while(f2 != l2)
        *dst++ = *f2++;
    return dst;
}
 
int main(void){
    int a[] = { 0, 1, 3, 5, 6, 7, 8, 9, 10, 50 };
    int b[] = { 0, 1, 2, 3, 4, 7, 8, 9, 50 };
    int c[sizeof(a)/sizeof(a[0]) + sizeof(b)/sizeof(b[0])];
 
    int* e = array_intersect(a, a + sizeof(a)/sizeof(a[0]), 
                             b, b + sizeof(b)/sizeof(b[0]), c);
    std::copy(c, e, std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
 
    e = array_union(a, a + sizeof(a)/sizeof(a[0]), 
                    b, b + sizeof(b)/sizeof(b[0]), c);
    std::copy(c, e, std::ostream_iterator<int>(std::cout, " "));
    return 0;
}
Пример работы кода
0
23.09.2015, 06:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.09.2015, 06:30
Помогаю со студенческими работами здесь

Написать программу для объединения массивов
Написать программу для объединения массивов, n - количество массивов, подлежащих объединению, а -...

Перегрузка оператора + для объединения массивов
Здравствуйте! Мной был написан код, в котором создаётся класс и заполняются массивы. Для...

Класс "множество целых чисел" с операциями объединения, пересечения, дополнения
Set.h using namespace std; class Set { int *nums; // множество целых чисел size_t...

Метод объединения или что-то типа того. Как реализовать?
Здравствуйте! Пишу код к задаче. Условие: Используйте двумерный массив для решения следующей...


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

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