Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/string/basic string/at"

From cppreference.com
< cpp‎ | string‎ | basic string
m (See also: + crosslink)
m (Synopsis: added numbering for overloads, IMfO, this should always be done, even if explanation part does not use the numbers.)
Line 1: Line 1:
{{cpp/string/basic_string/title | at}}
+
{{cpp/string/basic_string/title|at}}
 
{{cpp/string/basic_string/navbar}}
 
{{cpp/string/basic_string/navbar}}
 
{{dcl begin}}
 
{{dcl begin}}
{{dcl rev multi
+
{{dcl rev multi|num=1|until1=c++20
| until1=c++20 | dcl1=  
+
|dcl1=
reference       at( size_type pos );
+
reference at( size_type pos );
| dcl2=
+
|dcl2=
constexpr reference       at( size_type pos );
+
constexpr reference at( size_type pos );
 
}}
 
}}
{{dcl rev multi
+
{{dcl rev multi|num=2|until1=c++20
| until1=c++20 | dcl1=
+
|dcl1=
 
const_reference at( size_type pos ) const;
 
const_reference at( size_type pos ) const;
| dcl2=
+
|dcl2=
 
constexpr const_reference at( size_type pos ) const;
 
constexpr const_reference at( size_type pos ) const;
 
}}
 
}}
Line 20: Line 20:
 
===Parameters===
 
===Parameters===
 
{{par begin}}
 
{{par begin}}
{{par | pos | position of the character to return}}
+
{{par|pos|position of the character to return}}
 
{{par end}}
 
{{par end}}
  
Line 34: Line 34:
 
===Example===
 
===Example===
 
{{example
 
{{example
| code=
+
|code=
#include <stdexcept>
+
 
#include <iostream>
 
#include <iostream>
 +
#include <stdexcept>
 
#include <string>
 
#include <string>
  
Line 50: Line 50:
 
     std::cout << "string capacity = " << s.capacity() << '\n';
 
     std::cout << "string capacity = " << s.capacity() << '\n';
  
     try {
+
     try
 +
    {
 
         // This will throw since the requested offset is greater than the current size.
 
         // This will throw since the requested offset is greater than the current size.
 
         s.at(3) = 'x';
 
         s.at(3) = 'x';
 
     }
 
     }
     catch (std::out_of_range const& exc) {
+
     catch (std::out_of_range const& exc)
 +
    {
 
         std::cout << exc.what() << '\n';
 
         std::cout << exc.what() << '\n';
 
     }
 
     }
 
}
 
}
| p=true
+
|p=true
| output=
+
|output=
 
abx
 
abx
 
string size = 3
 
string size = 3
Line 69: Line 71:
  
 
{{dsc begin}}
 
{{dsc begin}}
{{dsc inc | cpp/string/basic_string/dsc operator_at }}
+
{{dsc inc|cpp/string/basic_string/dsc operator_at}}
{{dsc inc | cpp/string/basic_string_view/dsc {{SUBPAGENAMEE}}}}
+
{{dsc inc|cpp/string/basic_string_view/dsc {{SUBPAGENAMEE}}}}
 
{{dsc end}}
 
{{dsc end}}
  
 
{{langlinks|de|es|fr|it|ja|pl|pt|ru|zh}}
 
{{langlinks|de|es|fr|it|ja|pl|pt|ru|zh}}

Revision as of 05:56, 25 March 2023

 
 
 
std::basic_string
Member functions
Element access
basic_string::at
Iterators
Capacity
Modifiers
Search
Operations
Constants
Non-member functions
I/O
Comparison
(until C++20)(until C++20)(until C++20)(until C++20)(until C++20)(C++20)
Numeric conversions
(C++11)(C++11)(C++11)
(C++11)(C++11)
(C++11)(C++11)(C++11)
(C++11)
(C++11)
Literals
Helper classes
Deduction guides (C++17)

 
(1)
reference at( size_type pos );
(until C++20)
constexpr reference at( size_type pos );
(since C++20)
(2)
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.

Contents

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

#include <iostream>
#include <stdexcept>
#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

accesses the specified character
(public member function) [edit]
accesses the specified character with bounds checking
(public member function of std::basic_string_view<CharT,Traits>) [edit]