std::basic_string::at(3)

NAME
std::basic_string::at - std::basic_string::at

Synopsis
   reference at( size_type pos ); (until C++20)
   constexpr reference at( size_type pos ); (since C++20)
   const_reference at( size_type pos ) const; (until C++20)
   constexpr const_reference at( size_type pos ) const; (since C++20)
   Returns a reference to the character at specified location pos. Bounds checking is
   performed, exception of type std::out_of_range will be thrown on invalid access.

Parameters
   pos - position of the character to return

Return value
   Reference to the requested character.

Exceptions
   Throws std::out_of_range if pos >= size().

Complexity
   Constant.

Example
// Run this code
 #include <stdexcept>
 #include <iostream>
 #include <string>
 int main()
 {
     std::string s("message"); // for capacity
     s = "abc";
     s.at(2) = 'x'; // ok
     std::cout << s << '\n';
     std::cout << "string size = " << s.size() << '\n';
     std::cout << "string capacity = " << s.capacity() << '\n';
     try {
         // This will throw since the requested offset is greater than the current size.
         s.at(3) = 'x';
     }
     catch (std::out_of_range const& exc) {
         std::cout << exc.what() << '\n';
     }
 }

Possible output:
 abx
 string size = 3
 string capacity = 7
 basic_string::at

See also
   operator[] accesses the specified character
              (public member function)
   at accesses the specified character with bounds checking
   (C++17) (public member function of std::basic_string_view<CharT,Traits>)