2014-02-02 3 views
-4
#include <vector> 
#include <iostream> 
#include <map> 
#include <string> 
using namespace std; 
vector<char> prime; 
char a='t'; 
int number; 
int sqrt_of_n; 
int main(){ 
    try{ 
     cin >> number; 
     sqrt_of_n = round(sqrt(number)); 
     for (int i = 0; i < number; i++) prime.push_back(a);//заполнение массива 
     for (int i = 2; i < sqrt_of_n; i++) 
     { 
      for (int j = 3; j < number; j++) 
      { 
       if ((j%i == 0) && (j!=i)) prime[j] = 'f'; 
      } 
     } 
     for (int i = 0; i <= prime.size(); i++) 
     if (prime[i] == 't') cout << i << endl; 
     system("pause"); 
    } 
    catch (exception &e){ cout << "Isnt good" << e.what() << endl; } 
} 

Некоторые проблемы с ловлей исключениями. Я хочу, чтобы поймать ошибку out_of_range в векторе, но мяч work.ThanksИсключения C++ в векторе

+2

Пожалуйста, в дальнейшем прочитайте документацию перед использованием. – Manu343726

+0

-1: Вам просто нужно было прочитать документацию о [std :: vector] (http://en.cppreference.com/w/cpp/container/vector). –

+0

Его просто на языке программирования C++ от Stroustrup – Simankov

ответ

5

operator[] не выбрасывают исключения для недоступных доступов (или что-нибудь еще) - использовать at вместо этого, он обеспечивает проверили функциональность индекса.

Смежные вопросы