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

expression vector subscript out of range - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Строки http://www.cyberforum.ru/cpp-beginners/thread688382.html
Как это можно реализовать? Строка состоит из слов, разделенных ровно одним пробелом, пробелов перед первым и после последнего слова нет. Получить новую строку, в начале которой на нечетном месте должно стоять слово только из цифр, а на четном – другое слово. В конце новой строки поместить те слова, которые не могут быть записаны согласно приведенному правилу. Дополнительно можно использовать...
C++ Посоветуйте книгу) Привет,извините,конечно,что эта тема уже везде проскакивала,посоветуйте книгу C++,для начинающих,я знаком с ним,даже кодил немножко в вижуал студии,но это не дело,вот спрашиваю у вас- мастеров,что посоветуете для новичка. Добавлено через 27 секунд Многие говорят Шилдт? Добавлено через 2 минуты И еще,если в интернете , где-нибудь есть онлайн уроки, хорошие,пожалуйста не поленитесь киньте... http://www.cyberforum.ru/cpp-beginners/thread688375.html
C++ Найти произведение отрицательных элементов главной диагонали матрицы
Дана матрица 6х6. Подсчитать произведение отрицательных элементов главной диагонали матрицы. Если кол-во положительных элементов матрицы больше числа отрицательных элементов, то найти максимальный элемент среди элементов выше главной диагонали, в противном случае среди элементов ниже главной диагонали. Заранее большое спасибо
Разработать классы для данных объектов C++
Разработать классы для описанных ниже объектов. Включить методы set (...), get (...), show (...). Определить другие методы. Book: Автор, Название, Издательство, Год, Количество страниц. Создать массив объектов. Вывести: а) список книг заданного автора б) список книг, выпущенных заданным издательством в) список книг, выпущенных после заданного года. Добавлено через 3 часа 16 минут немног...
C++ Ошибка при компиляции http://www.cyberforum.ru/cpp-beginners/thread688356.html
Вот код: #include <iostream> #include <conio.h> #include <cstdio> #include <cstdlib> #include <windows.h> using namespace std;
C++ Сортировка массива структур не могу понять почему не работает. Программа должна сортануть массив из 10 елементов типа Struct. массив я забиваю из файла. есть код: #include <conio.h> #include <iostream> #include <fstream> using namespace std; подробнее

Показать сообщение отдельно
Pchel
1 / 1 / 0
Регистрация: 04.11.2012
Сообщений: 26
04.11.2012, 17:55     expression vector subscript out of range
Появляется ошибка при компиляции expression vector subscript out of range.Нужна помощь. Сортировка слиянием.Пользовался информацией с Википедии:
http://ru.wikibooks.org/wiki/%D0%9F%...B8%D0%B5%D0%BC
Добавлено через 15 минут
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
#include <iostream>
#include <vector>
using std::endl;
using std::cout;
using std::vector;
template<class T>
void MergeSort(vector<T>& v,size_t l,size_t r);
template<class T>
void merge(vector<T>& v,size_t l,size_t r,size_t q);
template<class T>
void swap_elem(vector<T>& v,size_t a,size_t b);
 
int main(void)
{
    vector<int> v(5,7);
    MergeSort(v,0,v.size()-1);
    for(vector<int>::iterator iter=v.begin();iter!=v.end();iter++)
        cout<<*iter<<' ';
    
}
template<class T>
void MergeSort(vector<T>& v,size_t l,size_t r)
{
    if(l>=r) return;
    size_t q=(l+r)/2;
    MergeSort(v,l,q);
    MergeSort(v,q+1,r);
    merge(v,l,r,q);//Слияние элементов
}
template<class T>
void swap_elem(vector<T>& v,size_t a,size_t b)
{
    T c;
    c=v[a];v[a]=v[b];v[b]=c;
}
 
template<class T>
void merge(vector<T>& arr,size_t l,size_t r,size_t q)//[l;q],[q+1;r] -отсортированные массивы
{                                                    //[l;r]- в результате отсортирован
    if(l>=r||q<l||q>r) 
        return;
    if((r==l+1)&&(arr[l]>arr[r])) 
    {
        swap_elem(arr,l,r);
        return;
    }
 
    vector<T> tmp(&arr[l],&arr[r+1]);
    
    for(size_t i(l),j(0),k(q-l+1);i<=r;i++)
    {
        if(j>q-l)
            arr[i]=tmp[k++];
        else
            if(k>r-l)
                arr[i]=tmp[j++];
            else
                arr[i]=(tmp[j]<tmp[k])? tmp[j++]:tmp[k++];
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru