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

Слияние двух массивов в отсортированный по не убыванию массив - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Структуры и строковые переменные http://www.cyberforum.ru/cpp-beginners/thread438377.html
Помогите, пожалуйста, найти ошибку. Четвёртый час сношаюсь с задачей, не могу найти, в чём баг. Задача простейшая с массивом из двух структур и строками. Компилится без ошибок и без предупреждений. работаю в Visual Studio 6. всё работает, но после выполнения программы вылазит окно с ошибкой. Постановка задания: Описать структуру с именем TRAIN, содержащую следующие поля: название пункта...
C++ функция rand() функция rand(). Расскажите об этой функции плиз. Смотрел в инете но везде какойто бред. Как с её помощью можно задать последовательность доустим с 45 до 66, и что для этого надо. http://www.cyberforum.ru/cpp-beginners/thread438368.html
C++ Проблемы с кодировкой при сравнении строк
Здравствуйте! Мне, нужно сравнить две строки: одну получаю get запросом(на сайте кодировка windows 1251), а вторая указывается непосредственно в коде. Но из-за кодировок, они не равны. Если вывести в консоль обе, первая явно короче(у меня иероглифы, и не вижу что там написано), если в файл, то одно и тоже. Длина строк так же различна. Какие есть пути решения проблемы? Скрин консоли:
C++ Найти нулевой(ые) элемент(ы) в матрице, вывести на пересечение какой строки и столбца располагается(ются) этот(эти) элемент(ы)
Ребят, программа нужна срочно, мне на неё нужно много потратить времени, помогите. Язык Си.
C++ Проверка задачи. http://www.cyberforum.ru/cpp-beginners/thread438334.html
вечер добрый. решал тут задачу, был уверен в решении, получил 30/100 баллов. у кого будет время, посмотрите пожалуйста, и дайте пример, где она будет валится, у меня не получилось. Задача B. Сокращение ссылок. - http://neerc.ifmo.ru/school/io/archive/20120129/problems-individual-20120129.pdf #include <fstream> #include <string> #include <cctype>
C++ Считывание расположения (пути) файла с клавиатуры Нужно реализовать в консольной программе открытие файла, путь которого будет считан с клавиатуры. Если файл находится в директории программы, то его ввести его название не составляет большого труда и программа этот файл без проблем читает, но когда дело подходит к вводу полного пути (например, C:\Games\2.bmp), то программа не читает файл. Это касается только ввода пути как аргумента командной... подробнее

Показать сообщение отдельно
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
31.01.2012, 09:38     Слияние двух массивов в отсортированный по не убыванию массив
Вот
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
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
#include <ctime>
#include <boost/random/mersenne_twister.hpp>
#include <boost/random/uniform_int_distribution.hpp>
 
void gen_(std::vector<int>& vec, std::vector<int>& vec1, int a, int b)
{
    boost::random::mt19937 gen;
    gen.seed(static_cast<unsigned> (std::time(0)));
    boost::random::uniform_int_distribution<> dist(a, b);
    std::generate(std::begin(vec), std::end(vec), [&] () { return dist(gen); });
    std::generate(std::begin(vec1), std::end(vec1), [&] () { return dist(gen); });
}
 
int main()
{
   std::vector<int> a(5);
   std::vector<int> b(5);
   std::vector<int> c(10);
   gen_(a, b, -15, 20);
   std::sort(std::begin(a), std::end(a), [] (int i, int j) { return j < i; });
   std::sort(std::begin(b), std::end(b), [] (int i, int j) { return j < i; });
   std::copy(std::begin(a), std::end(a), std::ostream_iterator<int> (std::cout, " ")); 
   std::cout << std::endl;
   std::copy(std::begin(b), std::end(b), std::ostream_iterator<int> (std::cout, " ")); 
   std::cout << std::endl;
   std::merge(a.rbegin(), a.rend(), b.rbegin(), b.rend(), std::begin(c));
   std::copy(std::begin(c), std::end(c), std::ostream_iterator<int> (std::cout, " ")); 
   std::cout << std::endl;   
}
http://liveworkspace.org/code/d891ba...eac8e9ba2fab4c
Код
17 4 -3 -10 -15 
7 3 3 3 -1 
-15 -10 -3 -1 3 3 3 4 7 17
Вот, если необходимо ее реализовать самому
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
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
#include <ctime>
#include <boost/random/mersenne_twister.hpp>
#include <boost/random/uniform_int_distribution.hpp>
 
void gen_(std::vector<int>& vec, std::vector<int>& vec1, int a, int b)
{
    boost::random::mt19937 gen;
    gen.seed(static_cast<unsigned> (std::time(0)));
    boost::random::uniform_int_distribution<> dist(a, b);
    std::generate(std::begin(vec), std::end(vec), [&] () { return dist(gen); });
    std::generate(std::begin(vec1), std::end(vec1), [&] () { return dist(gen); });
}
 
template <class InputIterator1, class InputIterator2, class OutputIterator>
  OutputIterator My_merge ( InputIterator1 first1, InputIterator1 last1,
                         InputIterator2 first2, InputIterator2 last2,
                         OutputIterator result )
{
  while (true) {
    *result++ = (*first2<*first1)? *first2++ : *first1++;
    if (first1==last1) return copy(first2,last2,result);
    if (first2==last2) return copy(first1,last1,result);
  }
}
 
int main()
{
   std::vector<int> a(5);
   std::vector<int> b(5);
   std::vector<int> c(10);
   gen_(a, b, -15, 20);
   std::sort(std::begin(a), std::end(a), [] (int i, int j) { return j < i; });
   std::sort(std::begin(b), std::end(b), [] (int i, int j) { return j < i; });
   std::copy(std::begin(a), std::end(a), std::ostream_iterator<int> (std::cout, " ")); 
   std::cout << std::endl;
   std::copy(std::begin(b), std::end(b), std::ostream_iterator<int> (std::cout, " ")); 
   std::cout << std::endl;
   My_merge(a.rbegin(), a.rend(), b.rbegin(), b.rend(), std::begin(c));
   std::copy(std::begin(c), std::end(c), std::ostream_iterator<int> (std::cout, " ")); 
   std::cout << std::endl;   
}
http://liveworkspace.org/code/1e1919...0d41598aa5df7a
Код
18 17 16 2 -9 
11 9 7 -2 -11 
-11 -9 -2 2 7 9 11 16 17 18
 
Текущее время: 19:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru