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

Быстрая Сортировка quick-sort (ошибка в 40 строке) как исправить? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти сумму элементов численного массива http://www.cyberforum.ru/cpp-beginners/thread689138.html
#include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; #include "stdafx.h" #include <iostream> #include <conio.h> int i; using namespace std;
C++ Вычислить Z = (S1 + S2)/ 2 Вычислить Z = (S1 + S2)/ 2; где S1 сумма положительных элементов массива X(9x6), а S2 - сумма отрицательных элементов массива А(60).Суммы вычислять в одной функции. Не могу понять в чём ошибка... #include <iostream> #include <fstream> #define SIZE_i 9 #define SIZE_j 6 #define SIZE_A 60 #define N 2 http://www.cyberforum.ru/cpp-beginners/thread689137.html
C++ Имитировать нажатие клавиши
Проблема такая, есть программа, кот запущена, с пользовательским интерфейсом. Нужно сделать для нее прогу, кот будет через допустим 2 минуты посылать ей нажатие клавиши Enter. Т.е фокус находится у прогр1, а вторая либо на заднем плане либо, только в процессах, без интерфейса, эт не важно, главное чтоб она посылала прогр1, будто пользователь нажал какую-то кнопку (пусть Enter).
Определить количество повторений в числе заданной цифры C++
Дано натуральное число N. Определить кол-во повторений в числе заданной цифры.
C++ Как сделать инклуд папки с файлами h? http://www.cyberforum.ru/cpp-beginners/thread689124.html
Все эти файлы находятся в папке QtWebKit: QWebHistory qwebpage.h .. qwebhistory.h QWebPluginFactory QGraphicsWebView QWebHistoryInterface qwebpluginfactory.h qgraphicswebview.h qwebhistoryinterface.h QWebSecurityOrigin QtWebKit QWebHistoryItem qwebsecurityorigin.h QWebDatabase QWebHitTestResult ...
C++ Отпечатать расстояния от начала координат для тех точек, которые принадлежат кругу с заданным радиусом 1 задание. Дана матрица из 2 столбцов и 10 строк. Первый элемент каждой строки представляет абсциссу, второй - ординату одной из 10 точек плоскости. Отпечатать расстояния от начала координат для тех точек, которые принадлежат кругу с заданным радиусом, и число таких точек. В с++. И можите обьяснить как вы это сделали. Просто не понимаю с++ и его методы. И на лекциях плохо рассказывают. Но... подробнее

Показать сообщение отдельно
Pchel
1 / 1 / 0
Регистрация: 04.11.2012
Сообщений: 26

Быстрая Сортировка quick-sort (ошибка в 40 строке) как исправить? - C++

05.11.2012, 16:02. Просмотров 466. Ответов 2
Метки (Все метки)

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <iostream>
#include <vector>
using std::endl;
using std::cout;
using std::vector;
 
template<class T>
void print_vector( vector<T>& v);
template<class T>
void prepare_vector(vector<T>* v);
template <class T>
void QuickSort(vector<T> *v,int left,int right);
 
int main(void)
{
    setlocale(LC_ALL,"Russian");
    vector<int> v(30,0);
    prepare_vector(&v);
    cout<<"Сгенерированный массив: "<<endl;
    print_vector(v);
    cout<<"Отсортированный массив: "<<endl;
    QuickSort(&v,0,v.size());
    print_vector(v);
    return 0;
    
}
template <class T>
void QuickSort(vector<T> *v,int left,int right)//левая и правая граница подмассивов
{
    T& med = (*v)[left];
    int l=left;
    int r =right;
    do
    
    {
        try
        {
        while((*v)[l]<med)
            ++l;
        while(v->at(r)>med)
            --r;
        }
        catch(std::out_of_range& ex)
        {
            cout<<"Информация из объекта исключения:"<<ex.what()<<endl;
        };
        if(l<=r)
        {
            std::swap((*v)[l],(*v)[r]);
            ++l;
            --r;
        }
        if(left<r)
            QuickSort(v,left,r);
        if(right>l)
            QuickSort(v,l,right);
 
    } while(l<=r);
}
template<class T>
void print_vector(vector<T>& v)
{
    for(vector<int>::iterator iter=v.begin();iter!=v.end();iter++)
        cout<<*iter<<' ';
    cout<<endl;
}
template<class T>
void prepare_vector(vector<T>* v)
{
    for(vector<int>::iterator iter=v->begin();iter!=v->end();iter++)
        *iter= std::rand() % 100;
}
Добавлено через 1 минуту
Информация из объекта исключения invalid vector<T> subscript. Ошибка в 40 строке.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru