Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > в чем ошибка?


Автор: afanp 6.2.2009, 18:35
Код

#include "stdafx.h"
#include <iostream>
#include <algorithm>
using namespace std;

int main()
{
    const int n=10;
    int a[n],b[n],c[n+n];
    for(int i=0;i<n;i++){
        a[i]=rand()%10;
        b[i]=rand()%10;
    }
    merge(a,a+n,b,b+n,c);
    for(int i=0;i<n+n;i++){
        cout << c[i] << " ";}
    system("pause");
    return 0;
}

при запуске программы вылетает ошибка :(

Автор: andrew_121 6.2.2009, 19:10
afanp, У меня нет никакой ошибки.

Автор: GoldFinch 6.2.2009, 19:12
ошибка в ТСе

Автор: afanp 6.2.2009, 19:18
а поточнее плиз?

Автор: SVN74 7.2.2009, 00:01
  //#include "stdafx.h"
Далее все норм.

Автор: vinter 7.2.2009, 09:30
на какой строке?

Автор: afanp 7.2.2009, 10:09
Насколько я понимаю, код верен. Но при запуске ошибка вот такая : пожалуйста, пототочнее можете объяснить в чем дело?

Автор: andrew_121 7.2.2009, 10:32
afanp, Что за компилятор? Покажи лог.

Автор: vinter 7.2.2009, 10:43
Цитата(andrew_121 @  7.2.2009,  11:32 Найти цитируемый пост)
afanp, Что за компилятор?

MSVC, сработал какйо то ассерт. Смотри в дебаге

Автор: afanp 7.2.2009, 11:24
cтудия 2008 

Автор: maxim1000 7.2.2009, 12:01
из описания std::merge:
Цитата

Combines all of the elements from two sorted source ranges into a single, sorted destination range, where the ordering criterion may be specified by a binary predicate.

функция предполагает, что входные данные отсортированы
при случайном заполнении, скорее всего, сортированности не получится, о чём она и сообщает на приведённом скриншоте ошибки: Sequence not ordered

Автор: andrew_121 7.2.2009, 12:38
maxim1000, Почему же у меня нет ошибки?

Добавлено через 5 минут и 26 секунд
Для проверки, скомпилировал в Mingw, работает.

Автор: afanp 7.2.2009, 12:48
maxim1000, 
cпасибо большое )

Автор: maxim1000 8.2.2009, 01:33
Цитата(andrew_121 @  7.2.2009,  12:38 Найти цитируемый пост)
maxim1000, Почему же у меня нет ошибки?

одно дело - нет ошибки, другое - нет такого её проявления
как должна работать функция std::merge на неотсортированых последовательностях, я не знаю
подозреваю, что здесь тем, кто будет писать её конкретную реализацию, стандарт C++ даёт некоторую свободу

в Visual C++ поступили так: выкинули ASSERT, чтобы в отладочной конфигурации выдать осмысленное сообщение
если его нет, то в голову приходят две причины:
1. другая среда разработки/компилятор
2. другая конфигурация (Release, например)
3. другая реализация Stl

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)