Jump to content

henry9x9

Użytkownicy
  • Content Count

    1
  • Joined

  • Last visited

Everything posted by henry9x9

  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...