std::basic_string<CharT,Traits,Allocator>:: append
|
basic_string
&
append
(
size_type count, CharT ch
)
;
|
(1) | (constexpr depuis C++20) |
|
basic_string
&
append
(
const
CharT
*
s, size_type count
)
;
|
(2) | (constexpr depuis C++20) |
|
basic_string
&
append
(
const
CharT
*
s
)
;
|
(3) | (constexpr depuis C++20) |
|
template
<
class
SV
>
basic_string & append ( const SV & t ) ; |
(4) |
(depuis C++17)
(constexpr depuis C++20) |
|
template
<
class
SV
>
basic_string
&
append
(
const
SV
&
t, size_type pos,
|
(5) |
(depuis C++17)
(constexpr depuis C++20) |
|
basic_string
&
append
(
const
basic_string
&
str
)
;
|
(6) | (constexpr depuis C++20) |
| (7) | ||
|
basic_string
&
append
(
const
basic_string
&
str,
size_type pos, size_type count ) ; |
(jusqu'à C++14) | |
|
basic_string
&
append
(
const
basic_string
&
str,
size_type pos, size_type count = npos ) ; |
(depuis C++14)
(constexpr depuis C++20) |
|
|
template
<
class
InputIt
>
basic_string & append ( InputIt first, InputIt last ) ; |
(8) | (constexpr depuis C++20) |
|
basic_string
&
append
(
std::
initializer_list
<
CharT
>
ilist
)
;
|
(9) |
(depuis C++11)
(constexpr depuis C++20) |
Ajoute des caractères supplémentaires à la chaîne.
[
s
,
s
+
count
)
.
- std:: is_convertible_v < const SV & , std:: basic_string_view < CharT, Traits >> est true .
- std:: is_convertible_v < const SV & , const CharT * > est false .
return append ( sv. data ( ) , sv. size ( ) ) ; .
return append ( sv. substr ( pos, count ) ) ; .
|
7)
Équivalent à
return
append
(
std::
basic_string_view
<
CharT, Traits
>
( str ) . substr ( pos, count ) ) ; . |
(depuis C++20) |
|
Cette surcharge a le même effet que la surcharge
(1)
si
|
(jusqu'à C++11) |
|
Cette surcharge participe à la résolution de surcharge seulement si
|
(depuis C++11) |
Table des matières |
Paramètres
| count | - | nombre de caractères à ajouter |
| ch | - | valeur du caractère à ajouter |
| s | - | pointeur vers la chaîne de caractères à ajouter |
| t | - | objet convertible en std::basic_string_view avec les caractères à ajouter |
| pos | - | index du premier caractère à ajouter |
| str | - | chaîne à ajouter |
| first, last | - | plage de caractères à ajouter |
| ilist | - | liste d'initialisation avec les caractères à ajouter |
Valeur de retour
* this
Complexité
Il n'existe aucune garantie de complexité standard, les implémentations typiques se comportent de manière similaire à std::vector::insert() .
Exceptions
Si l'opération devait entraîner le dépassement de
size()
au-delà de
max_size()
, lève
std::length_error
.
Si une exception est levée pour quelque raison que ce soit, cette fonction n'a aucun effet ( garantie forte de sûreté face aux exceptions ).
Exemple
#include <cassert> #include <string> int main() { std::string str = "std::string"; const char* cptr = "C-string"; const char carr[] = "range"; std::string result; // 1) Ajouter un caractère 3 fois. // Note : C'est la seule surcharge acceptant les « CharT ». result.append(3, '*'); assert(result == "***"); // 2) Ajouter une chaîne C de longueur fixe result.append(cptr, 5); assert(result == "***C-str"); // 3) Ajouter une chaîne C terminée par un caractère nul // Note : Comme « append » retourne *this, nous pouvons enchaîner les appels. result.append(1, ' ').append(cptr); assert(result == "***C-str C-string"); // 6) Ajouter une chaîne entière result.append(1, ' ').append(str); assert(result == "***C-str C-string std::string"); // 7) Ajouter une partie d'une chaîne result.append(str, 3, 2); assert(result == "***C-str C-string std::string::"); // 8) Ajouter une plage result.append(&carr[2], &carr[3]); assert(result == "***C-str C-string std::string::n"); // 9) Ajouter une liste d'initialisation result.append({'p', 'o', 's'}); assert(result == "***C-str C-string std::string::npos"); }
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 847 | C++98 | il n'y avait aucune garantie de sécurité des exceptions | garantie de sécurité forte des exceptions ajoutée |
| LWG 2250 | C++98 |
le comportement de la surcharge
(7)
était
indéfini si pos > str. size ( ) est true |
lève toujours une exception dans ce cas |
| LWG 2788 | C++98 |
la surcharge
(8)
utilisait un allocateur construit par défaut
pour construire la chaîne temporaire |
obtient l'allocateur
à partir de get_allocator() |
| LWG 2946 | C++17 | la surcharge (4) provoque une ambiguïté dans certains cas | évitée en la rendant template |
Voir aussi
|
(C++23)
|
ajoute une plage de caractères à la fin
(fonction membre publique) |
|
ajoute des caractères à la fin
(fonction membre publique) |
|
|
concatène deux chaînes de caractères
(fonction) |
|
|
concatène un certain nombre de caractères de deux chaînes
(fonction) |
|
|
ajoute une copie d'une chaîne large à une autre
(fonction) |
|
|
ajoute un certain nombre de caractères larges d'une chaîne large à une autre
(fonction) |