[c++] Problem z funkcją at() [string]
Ostatnio zmodyfikowano 2014-03-08 12:06
00Andre Temat założony przez niniejszego użytkownika |
[c++] Problem z funkcją at() [string] » 2014-03-08 11:58:48 Siemka Mam mały problem. ponieważ podczas działania programu pokazuje błąd : terminate called after throwing an instance of 'std::out_of_range' what(): basic_string::at
This application has rquested the Runtime to terminate it in an unusual way Please contact the application's support team for more information
A oto kod for( unsigned b = 0; a < nazwa_kontakt.length(); b++ ) { if( nazwa_kontakt.at( b ) == '-' ) ++pozycja_znaku; }
I nie wiem co jest złego w tym kodzie, że błąd pokazuje 00Andre |
|
MrPoxipol |
» 2014-03-08 12:02:24 at() sprawdza, czy nie wychodzisz poza rozmiar vectora i jeśli wychodzisz, rzuca wyjątkiem. Więc jak możesz się prosto domyślić, wychodzisz poza zakres. for( unsigned b = 0; a < nazwa_kontakt.length(); b++ ) Czy aby na pewno ma być tam a < nazwa_kontakt.length(). PS Używaj size() zamiast length(). PPS Dużo prościej jest użyć pętli foreach: vector < int > numbers( { 3, 5, 2, 56, 3235 } ); for( auto i: numbers ) cout << i << " "; |
|
00Andre Temat założony przez niniejszego użytkownika |
» 2014-03-08 12:06:21 Już wiem co. Przepraszam was za zamieszanie. W warunku pętli for powinno być b a nie a =D
Temat można zamknąć
00Andre |
|
« 1 » |