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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.69
anton_00777
0 / 0 / 0
Регистрация: 12.01.2010
Сообщений: 21
#1

пересечение множеств - C++

10.07.2011, 15:16. Просмотров 2107. Ответов 4
Метки нет (Все метки)

найти пересечение мнжества А и В. Результат вывести в другом множестве.
заранее спс.

извиняюсь если такое задание уже было
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2011, 15:16     пересечение множеств
Посмотрите здесь:

Пересечение множеств - C++
Здравствуйте. У меня следующая задача: Даны 2 множества A и B, причем множество B отсортировано по возрастанию. Необходимо получить...

Пересечение множеств - C++
Вход — два множества натуральных чисел. Выход — их пересечение (перечисление элементов через пробел в любом порядке без повторений)...

Пересечение множеств - C++
Есть такое задание: Создать класс- множество. Функции-члены реализуют добавление и удаление элемента, пересечение и размность множеств. ...

Пересечение, ообъединение, наименьший элемент пересечения множеств - C++
"Даны два множества A и B байтовых чисел. Найдите пересечение и объединение этих множеств и определите наименьший элемент пересечения...

Найти пересечение множеств ключей двух map - C++
Добрый день! Имеется 2 map'а: map<string, double> map1; map<string, double> map2; Требуется сложить ключи, являющиеся общими...

Осуществить все операции над элементами множеств: пересечение, объединение, ... - C++
Привет всем. Помогите найти ошибку в коде. Задание такое: Программа позволит осуществить все операции над элементами множеств:...

Определить, есть ли в данном тексте пара слов, пересечение множеств символов которых пусто. - C++
подскажите!!!!! Определить, есть ли в данном тексте пара слов, пересечение множеств символов которых пусто.

Заданы два множества точек на плоскости. Построить пересечение и разность этих множеств. Дописать программу - C++
Помогите написать, дописать эту программу очень нужна ваша помощь... Задание:заданы два множества точек на плоскости. Построить...

Шаблон класса должен давать возможность вывести все элементы множества на экран, сложение, вычитание, осуществлять пересечение множеств - C++
Есть вот такое задание: 4. Создать шаблон класса Mnogyna. Шаблон класса должен давать возможность вывести все элементы множества на...

Пересечение пятиугольников - C++
Здравствуйте. Собственно сабж. Вообще по заданию нужно определить только факт пересечения, но мне было бы интересно и сами точки найти. Из...

Задача на пересечение - C++
Всем доброго вечера. Помогите пожалуйста решить задачу. Я не могу понять саму структуру как должно быть.

Пересечение треугольников - C++
Здравствуйте! Подскажите, пожалуйста, как узнать пересекается треугольник или нет с другими треугольниками. Вот данные: struct...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
10.07.2011, 15:39     пересечение множеств #2
anton_00777, используй поиск, хотя бы гугл.
Пересечение, ообъединение, наименьший элемент пересечения множеств
anton_00777
0 / 0 / 0
Регистрация: 12.01.2010
Сообщений: 21
10.07.2011, 15:58  [ТС]     пересечение множеств #3
Искал , хочется без библиотек СТЛ , чистие циклы , сделал набросок
но самой проверкой не прально , не доработал еще , немогу сделать нормальный цикл
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    const int n=5 ;
    int d[10],c[10],a[n],b[n],i,j;
    bool k;
    for (i=0;i<n;i++)
        {
            cout<<"Bbegitb a["<<i<<"] :";
            cin>>a[i];
        }
    for (j=0;j<n;j++)
        {
            cout<<"Bbegitb b["<<j<<"] :";
            cin>>b[j];
        }
    for (i=0;i<n;i++)
        {
                    if(a[i]!=b[i])
                        {
                            c[i]=a[i];
                        }
                    else
                        {
                            c[i]=a[i];
                            d[i]=b[i];
                        }
        }
        
    for (i = 0 ; i < 5 ; i++)
        cout<< c[i]<<" ";
    for (i = 0 ; i < 5 ; i++)
        cout<< d[i]<<" ";
    return 0;
}
Добавлено через 1 минуту
делал 2ной цикл в проверке но не помогает....
insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
11.07.2011, 12:19     пересечение множеств #4
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
#include <iostream>
using namespace std;
 
int main(int argc, char* argv[])
{
        const int n=5 ;
    int a[] = { 1, 2, 3, 4, 5 };
    int b[] = { 8, 1, 5, 7, 3 };
        int c[n*2];
    int k = 0;
        for (int i=0; i < n; i++)  
    {
        for (int j=0; j <n; j++)
        {
        if (a[i] == b[j])
            c[k++] = a[i];
        }
    }
        
    for (int i = 0 ; i < n ; i++)
                cout<< a[i]<<" ";
        cout << endl;        
        for (int i = 0 ; i < n ; i++)
                cout<< b[i]<<" ";
        cout << endl;
        for (int i = 0 ; i < k ; i++)
                cout<< c[i]<<" ";
    cout << endl;
 
    cin.get();
        return 0;
}
Mиxaил
531 / 436 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
11.07.2011, 13:16     пересечение множеств #5
Вот как вариант:
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
#include <iostream>
#include <algorithm>
#include <vector>
 
int main ( int argc, char * argv[] )
{
    int FirstSet[]  = { 1, 5, 6, -2, 3, 0 };
    int SecondSet[] = { 0, -2, 6, 12, 7, 10 };
 
    std::vector < int > Crossing ( ( sizeof ( FirstSet ) + sizeof ( SecondSet ) ) / 4 );
 
    std::sort ( FirstSet, FirstSet + ( sizeof ( FirstSet ) / 4 ) );
    std::sort ( SecondSet, SecondSet + ( sizeof ( SecondSet ) / 4 ) );
 
    std::vector < int >::iterator iter = std::set_intersection ( FirstSet, FirstSet + ( sizeof ( FirstSet ) / 4 ), 
                                                               SecondSet, SecondSet + ( sizeof ( SecondSet ) / 4 ), 
                                                               Crossing.begin() );
    
    for ( std::vector < int >::size_type it = 0; it < ( int ) ( iter - Crossing.begin() ); it++ )
        std::cout << " " << Crossing [ it ];
 
    std::cin.get();
    return 0;
}
Добавлено через 19 минут
Можно заменить вывод на:
C++
1
2
3
4
Crossing.resize ( static_cast < int > ( iter - Crossing.begin() ) );
    
for ( std::vector < int >::size_type it = 0; it < Crossing.size(); it++ )
    std::cout << " " << Crossing [ it ];
Yandex
Объявления
11.07.2011, 13:16     пересечение множеств
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru