GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::basic_string::append(3) C++ Standard Libary std::basic_string::append(3)

std::basic_string::append - std::basic_string::append

basic_string& append( (until size_type count, CharT ch ); C++20) constexpr basic_string& (since append( size_type count, C++20) CharT ch ); basic_string& append( const (until basic_string& str ); C++20) constexpr basic_string& (since append( const basic_string& C++20) str ); basic_string& append( const basic_string& str, (until size_type pos, size_type C++14) count ); basic_string& append( const (since basic_string& str, C++14) size_type pos, size_type (until count = npos ); C++20) constexpr basic_string& append( const basic_string& (since str, C++20) size_type pos, size_type count = npos ); basic_string& append( const (until CharT* s, size_type count ); C++20) constexpr basic_string& (since append( const CharT* s, C++20) size_type count ); basic_string& append( const (until CharT* s ); C++20) constexpr basic_string& (since append( const CharT* s ); C++20) template< class InputIt > basic_string& append( (until InputIt first, InputIt last C++20) ); template< class InputIt > (1) constexpr basic_string& (since append( InputIt first, C++20) InputIt last ); (2) basic_string& append( (since std::initializer_list<CharT> (3) C++11) ilist ); (until
C++20) constexpr basic_string& append( (since std::initializer_list<CharT> C++20) ilist ); template < class (4) (since StringViewLike > C++17) basic_string& append( const (5) (until StringViewLike& t ); C++20) template < class (6) StringViewLike > (since constexpr basic_string& C++20) append( const StringViewLike& t ); (7) template < class StringViewLike >
(since basic_string& append( const (8) C++17) StringViewLike& t, (until
C++20) size_type pos, size_type count = npos ); template < class (9) StringViewLike >

constexpr basic_string& (since append( const C++20) StringViewLike& t,

size_type pos, size_type count = npos );


Appends additional characters to the string.


1) Appends count copies of character ch
2) Appends string str
3) Appends a substring [pos, pos+count) of str. If the requested substring lasts
past the end of the string, or if count == npos, the appended substring is [pos,
size()). If pos > str.size(), std::out_of_range is thrown.
4) Appends characters in the range [s, s + count). This range can contain null
characters.
5) Appends the null-terminated character string pointed to by s. The length of the
string is determined by the first null character using Traits::length(s).
6) Appends characters in the range [first, last).


This overload has the same effect as overload (1) if InputIt is an (until C++11)
integral type.
This overload only participates in overload resolution if InputIt (since C++11)
qualifies as an LegacyInputIterator


7) Appends characters from the initializer list ilist.
8) Implicitly converts t to a string view sv as if by std::basic_string_view<CharT,
Traits> sv = t;, then appends all characters from sv as if by append(sv.data(),
sv.size()). This overload participates in overload resolution only if
std::is_convertible_v<const StringViewLike&, std::basic_string_view<CharT, Traits>>
is true and std::is_convertible_v<const StringViewLike&, const CharT*> is false.
9) Implicitly converts t to a string view sv as if by std::basic_string_view<CharT,
Traits> sv = t;, then appends the characters from the subview [pos, pos+count) of
sv. If the requested subview extends past the end of sv, or if count == npos, the
appended subview is [pos, sv.size()). If pos >= sv.size(), std::out_of_range is
thrown. This overload participates in overload resolution only if
std::is_convertible_v<const StringViewLike&, std::basic_string_view<CharT, Traits>>
is true and std::is_convertible_v<const StringViewLike&, const CharT*> is false.


count - number of characters to append
pos - the index of the first character to append
ch - character value to append
first, last - range of characters to append
str - string to append
s - pointer to the character string to append
ilist - initializer list with the characters to append
t - object convertible to std::basic_string_view with the characters to
append


*this


There are no standard complexity guarantees, typical implementations behave similar
to std::vector::insert.


If an exception is thrown for any reason, this function has no effect (strong
exception guarantee).
(since C++11)


If the operation would result in size() > max_size(), throws std::length_error.


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 2946 C++17 string_view overload causes ambiguity in avoided by making it a
some cases template

// Run this code


#include <string>
#include <iostream>


int main() {
std::basic_string<char> str = "string";
const char* cptr = "C-string";
const char carr[] = "Two and one";


std::string output;


// 1) Append a char 3 times.
// Notice, this is the only overload accepting chars.
output.append(3, '*');
std::cout << "1) " << output << "\n";


// 2) Append a whole string
output.append(str);
std::cout << "2) " << output << "\n";


// 3) Append part of a string (last 3 letters, in this case)
output.append(str, 3, 3);
std::cout << "3) " << output << "\n";


// 4) Append part of a C-string
// Notice, because `append` returns *this, we can chain calls together
output.append(1, ' ').append(carr, 4);
std::cout << "4) " << output << "\n";


// 5) Append a whole C-string
output.append(cptr);
std::cout << "5) " << output << "\n";


// 6) Append range
output.append(&carr[3], std::end(carr));
std::cout << "6) " << output << "\n";


// 7) Append initializer list
output.append({ ' ', 'l', 'i', 's', 't' });
std::cout << "7) " << output << "\n";
}


1) ***
2) ***string
3) ***stringing
4) ***stringing Two
5) ***stringing Two C-string
6) ***stringing Two C-string and one
7) ***stringing Two C-string and one list


operator+= appends characters to the end
(public member function)
strcat concatenates two strings
(function)
strncat concatenates a certain amount of characters of two strings
(function)
wcscat appends a copy of one wide string to another
(function)
appends a certain amount of wide characters from one wide string to
wcsncat another
(function)

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.