Jump to content

henry9x9

Użytkownicy
  • Content Count

    1
  • Joined

  • Last visited

Community Reputation

0 Neutralny

About henry9x9

  • Rank
    Nowy na forum

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Kiedyś nie zwracałem na to uwagi, ale od pewnego momentu mam w każdym swoim kodzie ostrzeżenia o tym, że konwertuję nieodpowiedni typ dla wektora, bądź zmiennej w pętli. Chodzi oczywiście o sytuację, jak poniżej: std::vector < int > A; /* Tutaj dodajemy dane do wektora */ for( int i = 0; i < A.size(); ++i ) //(ostrzeżenie: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int') { std::cout << A[ i ] << std::endl; } Ostrzeżenie jest oczywiście przy zakresie dla pętli for. Mogę zmienić int na size_t, ale wtedy w innej sytuacji, nie mogę wykorzystać zmiennej zakresowej "i" w innym przypadku, aby nie narazić się na to samo ostrzeżenie, tylko w innym miejscu, czyli: std::vector < int > A; /* Tutaj dodajemy dane do wektora */ for( size_t i = 0; i < A.size(); ++i ) { std::cout << A[ i ] << std::endl; //tutaj przykładowe przypisanie, gdzie pojawia się ostrzeżenie (ostrzeżenie: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int'): int tmp = i; } Jak poprawnie iterować po wektorach? czy powinno się zawsze używać iteratora? Bądź pętli zakresowej? Jest jakaś "ogólna zasada"? A może nie powinno używać się w pętli iteracyjnej i<wektor.size()?
×
×
  • Create New...