Добрый день. Возникли сложности со встроенной сортировкой в C++. Подскажите, пожалуйста, почему первый вариант кода работает исправно, а второй падает с ошибкой(RE). - вопрос №2862842

Добрый день. Возникли сложности со встроенной сортировкой в C++.
Подскажите, пожалуйста, почему первый вариант кода работает исправно, а второй падает с ошибкой(RE). На вход подаю числа:
[I]15
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15[/I] 1) [COLOR=«SeaGreen»]Исправно[/COLOR]
[CPPQT]
#include <iostream>
#include <cmath>
#include <algorithm>
#include <math.h>
#include <vector>
#include <fstream> using namespace std; bool comp(int a, int b) {
return -(a-b);
} int main()
{
vector<int> a;
int m;
cin >> m;
for (int i = 0; i < m; i++) {
int t;
cin >> t;
a.push_back(t);
} for (int i = 0; i < m; i++) {
cout << a[i] << " ";
}

cout << endl;
sort(a.begin(), a.end(), comp); for (int i = 0; i < m; i++) {
cout << a[i] << " ";
}
return 0;
}[/CPPQT] 2) [COLOR=«Red»]Ошибка
[/COLOR][CPPQT]
#include <iostream>
#include <cmath>
#include <algorithm>
#include <math.h>
#include <vector>
#include <fstream> using namespace std; bool comp(int a, int b) {
return -(a-b);
} int main()
{
vector<int> a;
int m;
cin >> m;
for (int i = 0; i < m; i++) {
int t;
cin >> t;
a.push_back(t);
/===============
a.push_back(t);
} for (int i = 0; i < m*2; i++) {
cout << a[i] << " ";
}

cout << endl;
sort(a.begin(), a.end(), comp); for (int i = 0; i < m*2; i++) {
cout << a[i] << " ";
}
return 0;
}[/CPPQT] Надеюсь на вашу помощь.
Ответов пока нет

Еva

от 100 p.
Читать ответы
Посмотреть всех экспертов из раздела Учеба и наука > Информатика
1 ответ
08.06.13
Вопрос задан анонимно
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store