Byłem przeczytaniu odpowiedzi na to pytanie i okazało się, że nie jest w rzeczywistości metoda zwana length()
dla std::string
(I zawsze używany size()
). Czy jest jakiś konkretny powód, aby mieć tę metodę w std::string
klasie? Czytam zarówno MSDN, jak i CppRefernce, i wydają się one wskazywać, że nie ma różnicy między size()
i length()
. Jeśli tak, to czy nie czyni to bardziej skomplikowanym dla użytkownika klasy?
263
size()
(na wypadek, gdyby kiedykolwiek korzystałem z klas nieciągłych), ale większość czasu używamlength()
przy pracy z prostymi łańcuchami.std::string=> std::bacsic_string<char> count of char
std::wstring => std::basic_string<wchar_t> count of wchar_t.
Ruby jest taki sam, btw, oferując oba
#length
i#size
jako synonimy dla liczby elementów w tablicach i skrótach (C ++ robi to tylko dla łańcuchów).Minimaliści i ludzie, którzy wierzą, że „powinien być jeden, a najlepiej tylko jeden, oczywisty sposób na zrobienie tego” (jak mówi Zen Pythona), zgaduję, w większości, zgodzą się z twoimi wątpliwościami, @Naveen, podczas gdy fani Perla są ” Jest więcej niż jeden sposób, aby to zrobić ”(lub składnia SQL z opcjonalnym bazillionem„ szumowymi słowami ”zapewniającymi wiele identycznie równoważnych form składniowych do wyrażenia jednej koncepcji) bez wątpienia będzie narzekać, że Ruby, a zwłaszcza C ++, po prostu nie posuwaj się daleko wystarczy zaoferować taką synonimiczną redundancję ;-).
źródło
Podczas korzystania z narzędzi do programowania (LeetCode) wydaje się, że size () jest szybszy niż length () (choć w zasadzie nieistotny)
źródło
długość ciągu == ile bitów ma ten ciąg, rozmiar == rozmiar tych bitów, w ciągach oba są takie same, jeśli redaktor przydzieli rozmiar znaku 1 bajt
źródło