Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::basic_string<CharT,Traits,Allocator>::max_size

      From cppreference.com
      <cpp‎ |string‎ |basic string
       
       
       
      std::basic_string
       
      size_type max_size()const;
      (noexcept since C++11)
      (constexpr since C++20)

      Returns the maximum number of elements the string is able to hold due to system or library implementation limitations, i.e.std::distance(begin(), end()) for the largest string.

      Contents

      [edit]Parameters

      (none)

      [edit]Return value

      Maximum number of characters.

      [edit]Complexity

      Constant.

      [edit]Example

      Run this code
      #include <array>#include <climits>#include <iomanip>#include <iostream>#include <locale>#include <string>#include <typeinfo> #include <boost/core/demangle.hpp> template<typename T>void print_basic_string_max_size(){std::basic_string<T> s;auto max_size= s.max_size();std::cout.imbue(std::locale("en_US.UTF-8"));std::cout<<"basic_string<"<< boost::core::demangle(typeid(T).name())<<">:\n\t"<< max_size<<" = ";std::cout<<std::setprecision(3)<<(double) max_size<<" = ";std::cout.imbue(std::locale("C"));std::cout<<std::hex<<std::setfill('0')<<"0x"<<std::setw(sizeof(typename decltype(s)::size_type)<<1)<< max_size<<'\n'<<std::dec;}; int main(){std::cout<<"Pointer size: "<<CHAR_BIT* sizeof(void*)<<" bits\n""Maximum sizes:\n";     print_basic_string_max_size<char>();    print_basic_string_max_size<char16_t>();    print_basic_string_max_size<char32_t>();    print_basic_string_max_size<wchar_t>();    print_basic_string_max_size<long>(); using CharT=std::array<char,01232>;    print_basic_string_max_size<CharT>();}

      Possible output:

      Pointer size: 64 bitsMaximum sizes:basic_string<char>:        9,223,372,036,854,775,807 = 9.22e+18 = 0x7fffffffffffffffbasic_string<char16_t>:        4,611,686,018,427,387,903 = 4.61e+18 = 0x3fffffffffffffffbasic_string<char32_t>:        2,305,843,009,213,693,951 = 2.31e+18 = 0x1fffffffffffffffbasic_string<wchar_t>:        2,305,843,009,213,693,951 = 2.31e+18 = 0x1fffffffffffffffbasic_string<long>:        1,152,921,504,606,846,975 = 1.15e+18 = 0x0fffffffffffffffbasic_string<std::array<char, 666ul>>:        13,848,906,962,244,407 = 1.38e+16 = 0x00313381ec031337

      [edit]See also

      returns the number of characters
      (public member function)[edit]
      returns the number of characters
      (public member function ofstd::basic_string_view<CharT,Traits>)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/string/basic_string/max_size&oldid=177138"

      [8]ページ先頭

      ©2009-2025 Movatter.jp