std::basic_string::size,(3)
π std::basic_string::size,(3) π
okay bestie, welcome to the C++ Standard Libary page for std::basic_string::size,(3) β yes, that's the manual name, typo and all, and we're keeping every detail. this page is giving βhow many CharT elements are in the string?β energy. π
π NAME π
the whole NAME line is literally:
std::basic_string::size, - std::basic_string::size,
slay, it says the same thing twice, and we are not fixing it. π
β¨ Synopsis β¨
two overloads, both here for your counting needs:
size_type size() const; (1) (noexcept since C++11)
(constexpr since C++20)
size_type length() const; (2) (noexcept since C++11)
(constexpr since C++20)
and yeah, it returns the number of CharT elements in the string, i.e. std::distance(begin(), end()). no cap. π
πΈ Parameters πΈ
none. zero. zilch. this one takes no parameters. π
π Return value π
the number of CharT elements in the string. that's it, that's the tea. π
π Complexity π
Unspecified(until C++11)Constant(since C++11)
bestie, it got upgraded. π₯
π¦ Notes π¦
for std::string, the elements are bytes (objects of type char), and those are not the same as characters if a multibyte encoding such as UTF-8 is used. so like, do not confuse bytes with characters, iykyk. π
π» Example π»
the page says run this code, so here it is, exactly:
#include <cassert>
#include <iterator>
#include <string>
int main()
{
std::string s("Exemplar");
assert(8 == s.size());
assert(s.size() == s.length());
assert(s.size() == static_cast<std::string::size_type>(
std::distance(s.begin(), s.end())));
std::u32string a(U"γγγΌγ»γ―γΌγ«γ"); // 8 code points
assert(8 == a.size()); // 8 code units in UTF-32
std::u16string b(u"γγγΌγ»γ―γΌγ«γ"); // 8 code points
assert(8 == b.size()); // 8 code units in UTF-16
std::string c("γγγΌγ»γ―γΌγ«γ"); // 8 code points
assert(24 == c.size()); // 24 code units in UTF-8
#if __cplusplus >= 202002
std::u8string d(u8"γγγΌγ»γ―γΌγ«γ"); // 8 code points
assert(24 == d.size()); // 24 code units in UTF-8
#endif
}
not me gasping at the 24 bytes for 8 code points in UTF-8 β the example is literally showing off the difference. π
π See also π
emptyβ checks whether the string is empty (public member function)max_sizeβ returns the maximum number of characters (public member function)sizeβ returns the number of characterslengthβ (public member function of std::basic_string_view<CharT,Traits>)
kisses bestie, that's the whole page π it's from http://cppreference.com, dated 2024.06.10, with the page label std::basic_string::size,(3). periodt. π
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms