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

Ошибка в исключениях - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Данна непустая последовательность целых чисел http://www.cyberforum.ru/cpp-beginners/thread417820.html
Данна непустая последовательность целых чисел, оканчивающаяся нулём. найти количество всех чисел последовательности
C++ Известны оценки двух учеников по четырём предметам Определить сумму оценок каждого ученика Известны оценки двух учеников по четырём предметам Определить сумму оценок каждого ученика http://www.cyberforum.ru/cpp-beginners/thread417817.html
C++ Вычеслить столбиком
Вычеслить Сталбиком следующие числа 2,2, 2,4, 2,6, ..., 4,2.
Напечатать числа следующим образом C++
Напечатать числа следующим образом 11 11.4 11 11.4 ... 25 25.4
C++ Дано четырёхзначное число http://www.cyberforum.ru/cpp-beginners/thread417805.html
Дано четырёхзначное число Определить кратна ли троём сумма его цифр
C++ даны два различных веществынных числа даны два различных веществынных числа Определить какое из них меньше подробнее

Показать сообщение отдельно
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
26.12.2011, 15:15     Ошибка в исключениях
Sylar9, по порядку:
1. std::out_of_range объявлен в заголовке stdexcept. Необходимо подключить:
C++
1
#include <stdexcept>
2. operator[] у вектора не проверяет выход за границы массива. Это делает метод с названием at().
C++
1
cout << "a[" << i << "] == " << v.at(i) << endl;
3. std::out_of_range - это тип. Такой класс есть Нельзя создать безымянный экземпляр класса.
C++
1
catch (out_of_range e)
4. ну и наконец избавляемся от warning'а:
C++
1
for (vector<int>::size_type i = 0; i <= v.size(); i++)
Итоговый код:
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
#include <stdexcept>
#include <iostream>
#include <vector>
 
using namespace std;
 
int main()
{
        try {
           vector<int> v(2);
           
           for (vector<int>::size_type i = 0; i <= v.size(); i++)
              cout << "a[" << i << "] == " << v.at(i) << endl;
        } 
        
        catch (const out_of_range &e) 
        {
            cerr << "Out of range : " << e.what() << endl;
                return 1;
        } 
        catch (...)
        {
            cerr << "Smth is wrong" << endl;
                return 2;
        }
 
        return 0;
}
 
Текущее время: 02:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru