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

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

Войти
Регистрация
Восстановить пароль
 
fishec
 Аватар для fishec
118 / 118 / 30
Регистрация: 07.09.2013
Сообщений: 338
#1

Объединить массивы - C++

19.09.2013, 19:22. Просмотров 288. Ответов 3
Метки нет (Все метки)

Есть 2 множества чисел в массивах int. A и B. Кол-во элементов Na, Nb соответственно. Массивы сортированы по возрастанию, и в них нет повторов. Нужно в массив C записать объединение как множество(С=A U B) за один проход, и в переменную Nc поместить длину массива С.
Пример : A {1,3,5,6}, B{1,2,4,8}. Тогда C {1,2,3,4,5,6,8} Nc=7.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2013, 19:22     Объединить массивы
Посмотрите здесь:

C++ Объединить массивы
C++ Объединить эти массивы так, чтобы результирующий целочисленный массив D (размера NA + NB + NC) остался упорядоченным по убыванию.
C++ Объединить массивы в один, включив второй между пятым и шестым элементами
объединить 2 массива в 1 C++
Объединить массивы C++
C++ Объединить 2 кода
C++ Как первый и второй массивы с цифрами объединить и записать в третий массив и отсортировать?
C++ Объединить массивы так, чтобы результирующий массив остался упорядоченным по возрастанию (убыванию)
Строки, представленные как массивы символов перевернуть и объединить C++
C++ Объединить две программы
Объединить два массива C++
C++ Объединить три файла

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
6111 / 5714 / 1849
Регистрация: 18.12.2011
Сообщений: 14,593
Завершенные тесты: 1
19.09.2013, 19:44     Объединить массивы #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
int i1=0,i2=0;Nc=0;
while(i1<Na && i2<Nb)
{
   if(A[i1]<B[i2])
   {
        C[Nc]=A[i1];i1++;
   }else
   {
         C[Nc]=A[i2];i2++;
  }
  Nc++;
}
fishec
 Аватар для fishec
118 / 118 / 30
Регистрация: 07.09.2013
Сообщений: 338
19.09.2013, 19:50  [ТС]     Объединить массивы #3
Цитата Сообщение от zss Посмотреть сообщение
while(i1<Na && i2<Nb)
А что если один массив кончится раньше другого, остаток не запишется.
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
19.09.2013, 22:56     Объединить массивы #4
уже давно все придумано
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <algorithm>
#include <iterator>
#include <iostream>
#include <set>
 
int main()
{
    std::set <int> firstSet = {1, 3, 5, 6};
    std::set <int> secondSet = {1, 2, 4, 8};
 
    std::set <int> resultSet;
    std::set_union(firstSet.begin(), firstSet.end(), secondSet.begin(), secondSet.end(), std::inserter(resultSet, resultSet.begin()));
    std::copy(resultSet.begin(), resultSet.end(), std::ostream_iterator <int> (std::cout, " "));
 
    return 0;
}
Yandex
Объявления
19.09.2013, 22:56     Объединить массивы
Ответ Создать тему
Опции темы

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