Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2015, 20:07   #1
Саша1990
Пользователь
 
Регистрация: 01.02.2015
Сообщений: 16
По умолчанию Нужно закомментировать программу(С++)

Код:
#include <iostream>
#include <vector>
#include <algorithm>




template<class T, size_t N1, size_t N2>
static bool intersection( T (&first)[N1],  T (&second)[N2])
{
    std::sort (first,  first  + N1);     
    std::sort (second, second + N2);   

    enum { num = N1>N2? N2: N1 };       
    std::vector<T> v(num,0);

    const auto it = 
        std::set_intersection (first, first + num, second, second + num, v.begin());
        
    v.resize(it - v.begin());
    
    for(const auto& i: v)
        std::cout<< i<<", ";
        
    std::cout<<'\n';
    return !v.empty();
}

int main()
{
 
    
    int a[]={1,2,3,4,56,7,3,3,6,3};
    int b[]={3,2,1,5,6,3,5,74,4,5};
    
    if( intersection(a,b) )
        std::cout<<"result: yes\n";
    else
        std::cout<<"result: no\n";
    
}
Саша1990 вне форума Ответить с цитированием
Старый 30.03.2015, 20:37   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,299
По умолчанию

Код:
/*
#include <iostream>
#include <vector>
#include <algorithm>




template<class T, size_t N1, size_t N2>
static bool intersection( T (&first)[N1],  T (&second)[N2])
{
    std::sort (first,  first  + N1);     
    std::sort (second, second + N2);   

    enum { num = N1>N2? N2: N1 };       
    std::vector<T> v(num,0);

    const auto it = 
        std::set_intersection (first, first + num, second, second + num, v.begin());
        
    v.resize(it - v.begin());
    
    for(const auto& i: v)
        std::cout<< i<<", ";
        
    std::cout<<'\n';
    return !v.empty();
}

int main()
{
 
    
    int a[]={1,2,3,4,56,7,3,3,6,3};
    int b[]={3,2,1,5,6,3,5,74,4,5};
    
    if( intersection(a,b) )
        std::cout<<"result: yes\n";
    else
        std::cout<<"result: no\n";
    
}
*/
Готово
Не мог удержаться
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 31.03.2015, 04:41   #3
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,603
По умолчанию

Комментарии

Код:
#include <iostream> // для использования cout
#include <vector> // для использования класса vector
#include <algorithm> // для использования sort, set_intersection, 

template<class T, size_t N1, size_t N2> // шаблоны типов данных параметров функции
static bool intersection( T (&first)[N1],  T (&second)[N2]) 
// функция статическая возвращающая булевое значение и принимающая два аргумента типа T размерностями N1 и N2
{
    std::sort (first,  first  + N1);  // сортировка первого   
    std::sort (second, second + N2);   // сортировка второго

    enum { num = N1>N2? N2: N1 }; // выяснение большей из двух размерностей { N1, N2}      
    std::vector<T> v(num,0); // объявление вектора размерностью num

    const auto it = 
        std::set_intersection (first, first + num, second, second + num, v.begin());
 // конструирование сортированного массива таких элементов, которые естьи  в первом и втором одновременно
        
    v.resize(it - v.begin()); // изменение размерности вектора v
    
    for(const auto& i: v) 
        std::cout<< i<<", "; // вывод элементов которые есть и в первом и втором
        
    std::cout<<'\n'; // вывод перевода на новую строку с помощью escape-последовательности
    return !v.empty(); // возвращение булевого значения, указывающего, является ли пустым вектор v
}

int main()
{    
    int a[]={1,2,3,4,56,7,3,3,6,3}; // объявление массива a с инициализацией
    int b[]={3,2,1,5,6,3,5,74,4,5}; // объявление массива b с инициализацией
    
    if( intersection(a,b) ) // проверяет, существуют ли такие элементы, которые есть и в a и в b одновременно
        std::cout<<"result: yes\n"; // вывод, происходит, если элементы которые есть в a есть и в b
    else
        std::cout<<"result: no\n"; // вывод происходит,  если массивы не пересекаются
    
}
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"

Последний раз редактировалось Stilet; 31.03.2015 в 06:33.
challengerr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно закомментировать программу(С++) Саша1990 Помощь студентам 1 30.03.2015 16:32
Закомментировать в .rc zvygin1964 Помощь студентам 1 03.03.2015 16:12
Пожалуйста помогите закомментировать программу(С++) Саша1990 Помощь студентам 2 09.02.2015 16:52
Пожалуйста помогите закомментировать программу(С++) Саша1990 Помощь студентам 1 09.02.2015 16:45
Пожалуйста помогите закомментировать программу(С++) Саша1990 Помощь студентам 2 09.02.2015 16:23