Lass das try catch und check in ner Abfrage, ob der Index im richtigen Bereich liegt. Das ist wesentlich schöner und Exceptions sind sowieso immer so ne Sache.
Lass ausserdem das return im try-block weg. Return danach, denn jeder Pfad muss etwas zurückgeben und das passiert bei dir nicht.
Wenn du trotzdem unbedingt die Exception haben willst:
Code:
#include <exception>
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vec;
for(int i = 0; i < 10; ++i)
vec.push_back(i);
try
{
int x = vec.at(10);
}
catch(std::exception& e)
{
std::cerr << e.what();
}
}
Das wirft bei mir. Welchen Compiler benutzt du? Probiers mal im release-build.
Quote:
std::vectorerator[] erstellt ein neues leeres Element, wenn man z.B. über die Size hinaus auf Elemente zugreifen will.
|
Nein tut es nicht.