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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.91
celestia
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 5
#1

Слияние двух векторов - C++

18.05.2012, 10:16. Просмотров 3172. Ответов 4
Метки нет (Все метки)

Дано два одномерных массива A[i] и B[i]. Помогите, пожалуйста с кодом: нужно соединить их в один массив C[i].
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2012, 10:16     Слияние двух векторов
Посмотрите здесь:

Слияние двух векторов в третий по условию - C++
Здравствуйте, подскажите пожалуйста как написать сравнение двух массивов (массив старых и массив новых значений) с записью в третий...

Слияние двух файлов по алгоритму: цифра вставляется после двух символов - C++
#include <iostream> #include <io.h> #include <stdio.h> #include <windows.h> #include <string.h> #include <conio.h> using...

Слияние двух массивов - C++
Всем привет. Возникла проблема с задачей. Даны два массива одинакоого размера. Нужно создать 3 массив который будет хранить элементы...

Слияние двух строк - C++
Как соединить (конкатенировать) две строки на С? Помогите, пожалуйста

Слияние двух списков(срочно!) - C++
Даны два списка, нужно их склеить. Вот, написал, но при комплияции выдаются неведомые мне ошибки. Кто-нибудь из опытных людей может мне...

Слияние двух динамических массивов… - C++
Приветствую Вас!:) Задача такая: Даны два массива: A и B (числовые), упорядоченные по неубыванию. Слить их в один упорядоченный...

Слияние двух отсортированных списков - C++
Напишите функцию List& merge(List& L1, List& L2), добавляю- щую к упорядоченному списку L1 также упорядоченный список L2 и ...

Слияние из двух массивов в один общий - C++
Требуется соединить два массива в один есть сложность что они считаны с файла... помогите объединить два массива в один и вывести его на...

Слияние двух строк с перестановкой символов - C++
Необходимо произвести слияние 2х строк, вводимых в консоль и вывод третьей строки, объединяющей в себе первую и вторую строку, НО, в...

Слияние двух отсортированых массивов в один - C++
задание: Задано два массива. Массив А состоит из N элементов и отсортированный по увеличению . Массив В состоит из N элементов и...

Слияние двух массивов в отсортированный по не убыванию массив - C++
Даны два массива. Массив А состоит из N элементов, массив В состоит из М элементов. Оба массива отсортированы по убыванию. Разработать...

Сформировать массив путем слияние двух других - C++
помогите,пожалуйста,решить! Задан массив A из N элементов и массив B из M элементов. Сформировать массив L из массивов A и B путем их...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Catstail
Модератор
22441 / 10846 / 1765
Регистрация: 12.02.2012
Сообщений: 17,960
18.05.2012, 10:33     Слияние двух векторов #2
А как "соединить"? Один за другим пойдет? Тогда так:

C++
1
2
3
4
5
6
7
8
9
int C[...]; // Место для объединенного массива
 
int i,j;
   
   j=0;
 
   for (i=0; i < n1; i++) { C[i]=A[i]; j++};
 
   for (i=0; i < n2; i++) { C[j]=B[i]; j++};
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
18.05.2012, 10:37     Слияние двух векторов #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
39
40
41
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cstring>
#include <ctime>
 
 
int main() {
   const std::size_t size1 = 10,
                     size2 = 20,
                     size3 = size1 + size2;
 
   int A[ size1 ] = { 0 },
       B[ size2 ] = { 0 },
       C[ size3 ] = { 0 };
 
   std::srand( std::time( 0 ));
 
   std::cout << "First randomized array: " << std::endl;
   for ( std::size_t i = 0; i < size1; i++ ) {
      A[ i ] = std::rand() % 100;
      
      std::cout << std::setw( 2 ) << A[ i ] << ' ';
   }
   
   std::cout << "\n\nSecond randomized array: " << std::endl;
   for ( std::size_t i = 0; i < size2; i++ ) {
      B[ i ] = std::rand() % 100;
   
      std::cout << std::setw( 2 ) << B[ i ] << ' ';
   }
   
   std::cout << "\n\nMerged arrays: " << std::endl;
   for ( std::size_t i = 0; i < size3; i++ ) {
      C[ i ] = ( i < size1 ? A[ i ] : B[ i - size1 ] );
   
      std::cout << std::setw( 2 ) << C[ i ] << ' ';
   }
 
   return 0;
}
Петррр
5942 / 3379 / 335
Регистрация: 28.10.2010
Сообщений: 5,926
18.05.2012, 10:45     Слияние двух векторов #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
#include <iostream>
#include <ctime>
#include <cstring>
 
int main(int argc, char* argv[])
{
    enum { asize = 7, bsize = 6, csize = asize + bsize };
    int a[asize];
    int b[bsize];
    int c[csize];
    srand(time(NULL));
    std::cout << "A: " << std::endl;
    for(int i = 0; i < asize; i++)
        std::cout << (a[i] = rand() % 20) << " ";
    std::cout << std::endl << "B:" << std::endl;
    for(int i = 0; i < bsize; i++)
        std::cout << (b[i] = rand() % 20) << " ";
    std::cout << std::endl << "C: " << std::endl;
    memcpy(c, a, sizeof(a));
    memcpy(c + asize, b, sizeof(b));
    for(int i = 0; i < csize; i++)
        std::cout << c[i] << " ";
    std::cout << std::endl;
    system("pause");
    return 0;
}
ForEveR
В астрале
Эксперт С++
7968 / 4730 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
18.05.2012, 12:08     Слияние двух векторов #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
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <random>
#include <vector>
#include <algorithm>
#include <iterator>
#include <cstdlib>
 
void print_vec(const std::vector<int>& vec)
{
   std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
   std::cout << std::endl;
}
 
std::vector<int> generate_vec(std::mt19937& gen, std::uniform_int_distribution<>& distr, const size_t size)
{
   std::vector<int> vec(size);
   std::generate(vec.begin(), vec.end(), [&gen, &distr]() { return distr(gen); });
   print_vec(vec);
   return vec;
}
 
int main()
{
   const int arr1_sz = 10, arr2_sz = 5;
   const int begin_range = 0, end_range = 100;
   std::mt19937 generator(time(0));
   std::uniform_int_distribution<> distr(begin_range, end_range);
   std::vector<int> vec1 = generate_vec(generator, distr, arr1_sz);
   std::vector<int> vec2 = generate_vec(generator, distr, arr2_sz);
   std::vector<int> result = vec1;
   std::copy(vec2.begin(), vec2.end(), std::back_inserter(result));
   print_vec(result);
   return 0;
}
http://liveworkspace.org/code/57e66d...9fcedd21e42541
Yandex
Объявления
18.05.2012, 12:08     Слияние двух векторов
Ответ Создать тему
Опции темы

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