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

В чем отличие алгоритмов set_union и merge? - C++

Восстановить пароль Регистрация
 
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
05.05.2014, 19:04     В чем отличие алгоритмов set_union и merge? #1
Всем привет!
Уважаемые форумчане, подскажите пожалуйста, в чем отличие алгоритмов set_union и merge? Выходная последовательность обоих алгоритмов - это сортированная последовательность...

А также хотелось бы узнать в чем отличие алгоритмов set_difference от set_symmetric_difference? По моему они аналогичны... ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2014, 19:04     В чем отличие алгоритмов set_union и merge?
Посмотрите здесь:

В чем отличие printf от cout? C++
C++ В чем отличие While от Do... While?
Подскажите начинающему программисту, в чем отличие структур от классов в C++ C++
C++ C++, в чем отличие операций добавления в программе
C++ cin.get в чем отличие ?
C++ В чем отличие одной формы записи от второй?
Алгоритм std::set_union C++
C++ Поля, переменные; Методы, функции; В чем отличие?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
05.05.2014, 19:22     В чем отличие алгоритмов set_union и merge? #2
merge - простое объединение двух упорядоченных контейнеров в один упорядоченный.
set_union - если и в первом, и во втором контейнере находятся парные элементы, то вместо них в результирующую последовательность сохраняется один.
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
#include <iostream>
#include <vector>
#include <algorithm>
 
int main()
{
    std::vector<int> in_a = {1, 2, 2, 3};
    std::vector<int> in_b = {2, 2, 4, 5};
    
    std::vector<int> out_a;
    std::vector<int> out_b;
    
    std::set_union(in_a.begin(), in_a.end(), in_b.begin(), in_b.end(), std::back_inserter(out_a));
    std::merge(in_a.begin(), in_a.end(), in_b.begin(), in_b.end(), std::back_inserter(out_b));
    
    for (const auto& item : out_a)
    {
        std::cout << item << " ";
    }
    std::cout << std::endl;
    
    for (const auto& item : out_b)
    {
        std::cout << item << " ";
    }
    std::cout << std::endl;
    
    return 0;
}
http://ideone.com/jdkcmj

Добавлено через 4 минуты
set_difference - Разность множеств
set_symmetric_difference - Симметрическая разность
Yandex
Объявления
05.05.2014, 19:22     В чем отличие алгоритмов set_union и merge?
Ответ Создать тему
Опции темы

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