Wpis z mikrobloga

#naukaprogramowania #cpp

Na stronie: http://cpp0x.pl/kursy/Kurs-C++/Poziom-3/Modyfikowanie-tekstu-i-sprawdzanie-jego-dlugosci/353 znalazłem taki tekst:

Do sprawdzania długości tekstu służą dwie metody klasy std::string. Tymi metodami są: size oraz length. Przykład zastosowania metody size został już zaprezentowany w przykładach, które miały miejsce w poprzednim rozdziale. Metoda length zwraca tą samą wartość. W programowaniu współczesnym zaleca się aby używać metody size do odczytywania długości tekstu, a metodę length uważa się na dzień dzisiejszy za przeżytek. Metoda length pozostała standardzie C++ ze względów historycznych i zaleca się unikać używania wspomnianej metody w nowo pisanych aplikacjach.


Tu rodzi się moje pytanie: skoro te dwie metody zwracają taką samą wartość i niczym się nie różnią to dlaczego autor napisał żeby używać size() i uważa length() za przeżytek? Sprawdziłem temat na Stacku i też twierdzą tam że obie metody są dokładnie takie same, ale żeby używać length() bo jest bardziej czytelna (człowiek myśląc o ilości znaków w słowie myśli o długości a nie rozmiarze). Jak dla mnie rację mają ludzie ze Stacka. Jak to w końcu jest? Ktoś wyjaśni której metody powinno się używać i dlaczego?
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 1
@LordOfTheBananas: może autorowi chodzić o to, że string jest tablica znaków, a ilość elementów w kontenerze w cpp pobiera sie zwykle przez size(). Nie widzę żadnego argumentu za tym żeby używać jednego bądź drugiego. Ogarnięty programista czytający tekst zrozumie obie funkcje jednoznacznie.
Ja osobiście używam length, jest czytelniejsze.
  • Odpowiedz
@LordOfTheBananas: nie widze zadnej wzmianki o deprecated przy ktorejkolwiek, wiec uzywaj jak Ci wygodniej. Pamietaj tylko ze zadna nie zwroci poprawnej liczby znakow jezeli masz w stringu utf-8 (to zwraca liczbe bajtow, nie uwzglednia multi-byte)
  • Odpowiedz