Difference between revisions of "cpp/string/basic string/push back"
From cppreference.com
< cpp | string | basic string
m (Text replace - "<!-- ======== --> " to "") |
m (→Synopsis: {{ddcla}}; →Defect reports: "(1)" => "1)" cuz former is mostly reserved to refer to overloads.) |
||
(18 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
− | {{cpp/string/basic_string/title | push_back}} | + | {{cpp/string/basic_string/title|push_back}} |
− | {{cpp/string/basic_string/ | + | {{cpp/string/basic_string/navbar}} |
− | {{ | + | {{ddcla|constexpr=c++20| |
void push_back( CharT ch ); | void push_back( CharT ch ); | ||
}} | }} | ||
− | Appends the given character {{ | + | Appends the given character {{c|ch}} to the end of the string. |
===Parameters=== | ===Parameters=== | ||
− | {{ | + | {{par begin}} |
− | {{ | + | {{par|ch|the character to append}} |
− | {{ | + | {{par end}} |
===Return value=== | ===Return value=== | ||
− | + | (none) | |
===Complexity=== | ===Complexity=== | ||
− | {{ | + | Amortized constant. |
+ | |||
+ | ===Exceptions=== | ||
+ | {{cpp/string/basic_string/length error note}} | ||
+ | |||
+ | {{cpp/strong exception safety guarantee}} | ||
+ | |||
+ | ===Example=== | ||
+ | {{example | ||
+ | |code= | ||
+ | #include <iomanip> | ||
+ | #include <iostream> | ||
+ | #include <string> | ||
+ | |||
+ | int main() | ||
+ | { | ||
+ | std::string str{"Short string"}; | ||
+ | std::cout << "1) " << std::quoted(str) << ", size: " << str.size() << '\n'; | ||
+ | |||
+ | str.push_back('!'); | ||
+ | std::cout << "2) " << std::quoted(str) << ", size: " << str.size() << '\n'; | ||
+ | } | ||
+ | |output= | ||
+ | 1) "Short string", size: 12 | ||
+ | 2) "Short string!", size: 13 | ||
+ | }} | ||
+ | |||
+ | ===Defect reports=== | ||
+ | {{dr list begin}} | ||
+ | {{dr list item|wg=lwg|dr=7|std=C++98|before=1) the description was missing in the C++ standard<br>2) the parameter type was {{c/core|const CharT}}|after=1) description added<br>2) changed to {{tt|CharT}}}} | ||
+ | {{dr list item|wg=lwg|dr=847|std=C++98|before=there was no exception safety guarantee|after=added strong exception safety guarantee}} | ||
+ | {{dr list end}} | ||
===See also=== | ===See also=== | ||
+ | {{dsc begin}} | ||
+ | {{dsc inc|cpp/string/basic_string/dsc pop_back}} | ||
+ | {{dsc end}} | ||
− | {{ | + | {{langlinks|de|es|fr|it|ja|pt|ru|zh}} |
− | + | ||
− | + |
Latest revision as of 14:04, 18 October 2024
void push_back( CharT ch ); |
(constexpr since C++20) | |
Appends the given character ch to the end of the string.
Contents |
[edit] Parameters
ch | - | the character to append |
[edit] Return value
(none)
[edit] Complexity
Amortized constant.
[edit] Exceptions
If the operation would result in size
() >
max_size
(), throws std::length_error.
If an exception is thrown for any reason, this function has no effect (strong exception safety guarantee).
[edit] Example
Run this code
#include <iomanip> #include <iostream> #include <string> int main() { std::string str{"Short string"}; std::cout << "1) " << std::quoted(str) << ", size: " << str.size() << '\n'; str.push_back('!'); std::cout << "2) " << std::quoted(str) << ", size: " << str.size() << '\n'; }
Output:
1) "Short string", size: 12 2) "Short string!", size: 13
[edit] Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|---|---|---|
LWG 7 | C++98 | 1) the description was missing in the C++ standard 2) the parameter type was const CharT |
1) description added 2) changed to CharT
|
LWG 847 | C++98 | there was no exception safety guarantee | added strong exception safety guarantee |
[edit] See also
(DR*) |
removes the last character (public member function) |