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

Проверить, является ли один массив подмножеством другого - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Отличия в работе new и malloc http://www.cyberforum.ru/cpp-beginners/thread838677.html
Выполняла задание на определение максимального объема памяти, который может выделить программа под трехмерный массив. В первый раз программа была написана с использованием malloc/free, второй раз с использованием new/delete. Результаты очень отличались: в первом случае максимальный размер массива был 600, во втором около 12000, к тому же второй вариант работал раз в 5 быстрее. Чем может быть...
C++ Запуск exe файла в графическом режиме Помогите пожалуйста как сделать так чтобы по нажатию клавиши запускался определенный ехе файл у меня есть 5 ехе-шников и при нажатии на кнопку 1-5 должен запускаться определенный файл , но я не знаю как вызвать его Написал код#include <graphics.h> #include <conio.h> int main(int argc, char **argv, char **env) { int k; http://www.cyberforum.ru/cpp-beginners/thread838667.html
Списки. подскажите нубу C++
Карта содержит две группы вопросов. Первая содержит сведения: возраст, пол , вид спорта(теннис футбол бег) Вторая содержит вопрос о самочувствии после нагрузки спортсмена. оно может являться либо ХОРОШЕЕ(ХОР), либо УДОВЛЕТВОРИТЕЛЬНОЕ(УДОВ) *Написать программу которая: 1) обеспечивает вывод карт и формирует линейный список 2)на основе анализа карт выдает след. вопросы:а)сколько мужчин,...
C++ Проверка вводимых значений
Стоит задача не допустить ввода значений помимо чисел(0..9), точки(".") и "+" или "-". При условии, что используется данная функция: void input() { cout<<" * umnogenie \n / delenie \n + summa \n - raznost' \n ^ vozvedenie v stepen'"<<endl; cout<<"vvedite celuy chast' pervogo kompleksnogo chisla "; cin>>n1; cout<<"vvedite mnimuy chast' pervogo kompleksnogo chisla "; cin>>m1;...
C++ Не считываются пробелы из файла http://www.cyberforum.ru/cpp-beginners/thread838660.html
Допустим пытаюсь считать из файла "ghf fk ff 123 1", а выводится/считывается "ghffkff1231" В чем может быть проблема? #include <iostream> #include <fstream> using namespace std; int razmer () {fstream f; f.open ("in.txt", ios::in);
C++ Обработка исключений Здравствуйте, мне нужно проанализировать ведённый номер телефона методом обработка исключений. Подскажите пожалуйста, почему я не могу мой код void tel_num (double n) { cout << "Please enter telephone number (+371)"; cin >> n; cout << endl; cout << "(+371)" << n << endl; подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
3021 / 1677 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
15.09.2016, 01:13     Проверить, является ли один массив подмножеством другого
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
//Написать функцию, принимающую в качестве аргумента указатели
//на два массива (А и В) и размеры массивов. Функция проверяет,
//является ли массив В подмножество массива А и возвращает
//указатель на начало найденного фрагмент, если элемента нет,
//возвращает 0.
///////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <iostream>
///////////////////////////////////////////////////////////////////////////////
int     *   may_serch
    (
        int     *   A_ptr,
        int         A_size,
        int     *   B_ptr,
        int         B_size
    )
{
    auto    res     =   std::search
                            (
                                A_ptr,
                                A_ptr   +   A_size,
                                B_ptr,
                                B_ptr   +   B_size
                            );
 
    return  res     ==  A_ptr   +   A_size
                ?   nullptr
                :   res;
}
///////////////////////////////////////////////////////////////////////////////
int     main()
{
    int     A[]     {1, 2, 3, 4, 5};
    int     B[]     {1, 2};
 
    srand(unsigned(time(0)));
 
    for(;;)
    {
        std::generate
            (
                std::begin  (B),
                std::end    (B),
 
                []
                {
                    return  rand() % 5 + 1;
                }
            );
 
        for( auto   a_elem  :   A )
        {
            std::cout   <<  a_elem
                        <<  '\t';
        }
        std::cout   <<  std::endl;
 
        for( auto   b_elem  :   B )
        {
            std::cout   <<  b_elem
                        <<  '\t';
        }
        std::cout   <<  std::endl;
 
        auto    pos     =   may_serch
                                (
                                    A,
                                    sizeof(A) / sizeof(*A),
                                    B,
                                    sizeof(B) / sizeof(*B)
                                );
 
        if( !pos )
        {
            std::cout   <<  "NOT"
                        <<  std::endl;
        }
        else
        {
            std::cout   <<  pos - A
                        <<  std::endl
                        <<  std::endl;
        }//else
 
        system("pause");
    }//for
}
 
Текущее время: 01:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru