Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[c++] Problem z funkcją at() [string]

Ostatnio zmodyfikowano 2014-03-08 12:06
Autor Wiadomość
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
C/C++
for( unsigned b = 0; a < nazwa_kontakt.length(); b++ )
{
    // Sprawdzamy
    if( nazwa_kontakt.at( b ) == '-' ) ++pozycja_znaku;
   
}

I nie wiem co jest złego w tym kodzie, że błąd pokazuje

00Andre
P-105840
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:
C/C++
vector < int > numbers( { 3, 5, 2, 56, 3235 } );
for( auto i: numbers )
     cout << i << " ";
P-105843
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
P-105844
« 1 »
  Strona 1 z 1