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

Не рабочий merge() - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
parkito
 Аватар для parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 685
19.09.2011, 22:54     Не рабочий merge() #1
Подскажите пожалуйста почему данная программа напрочь отказывается работать ?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
#include<algorithm>
using namespace std;
int art[]={5,2,3,6,8};
int bar[]={10,20,30,40,50};
int cam[22];
int main ()
{setlocale(LC_ALL,"Rus");
 
merge(art,art+5,bar,bar+5,cam);
for(int i=0;i<22;i++)
    cout<<cam[i]<<endl;
cin.get();
cin.get();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2011, 22:54     Не рабочий merge()
Посмотрите здесь:

C++ list.merge(
Pекурсивная версия функции merge C++
C++ Алгоритм сортировки In-place merge sort
C++ Merge sort
В чем отличие алгоритмов set_union и merge? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
19.09.2011, 23:00     Не рабочий merge() #2
у меня работает
parkito
 Аватар для parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 685
19.09.2011, 23:28  [ТС]     Не рабочий merge() #3
Цитата Сообщение от PointsEqual Посмотреть сообщение
у меня работает
Вот что у меня выскакивает
Миниатюры
Не рабочий merge()  
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
20.09.2011, 00:46     Не рабочий merge() #4
Вам же написали: "sequence not ordered", merge требует, что бы диапазоны элементов были упорядоченные. Если хотите что бы ваш код работал, замените 4ую строку на
int art[] = {2, 3, 5, 6, 8};
parkito
 Аватар для parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 685
20.09.2011, 19:13  [ТС]     Не рабочий merge() #5
Цитата Сообщение от Net_Wanderer Посмотреть сообщение
Вам же написали: "sequence not ordered", merge требует, что бы диапазоны элементов были упорядоченные. Если хотите что бы ваш код работал, замените 4ую строку на
int art[] = {2, 3, 5, 6, 8};
А как сделать так чтоб не нужно было упорядочивать ?
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
20.09.2011, 23:53     Не рабочий merge() #6
Цитата Сообщение от parkito Посмотреть сообщение
А как сделать так чтоб не нужно было упорядочивать ?
Никак
но можно отсортировать с помощью std::sort перед вызовом merge или использовать std::copy.
Yandex
Объявления
20.09.2011, 23:53     Не рабочий merge()
Ответ Создать тему
Опции темы

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