[ Web Proxy ]
URL:
Viewing: http://es.cppreference.com/cpp/string/basic_string/insert [Back]  [Original]

std::basic_string::insert - cppreference.com
cppreference.com
Espacios de nombres
Variantes

std::basic_string::insert

De cppreference.com
 
 
 
std::basic_string
 
basic_string& insert( size_type index, size_type count, CharT ch );
(1) (hasta C++20)
constexpr basic_string& insert( size_type index, size_type count, CharT ch );
(desde C++20)
basic_string& insert( size_type index, const CharT* s );
(2) (hasta C++20)
constexpr basic_string& insert( size_type index, const CharT* s );
(desde C++20)
basic_string& insert( size_type index, const CharT* s, size_type count );
(3) (hasta C++20)
constexpr basic_string& insert( size_type index, const CharT* s, size_type count );
(desde C++20)
basic_string& insert( size_type index, const basic_string& str );
(4) (hasta C++20)
constexpr basic_string& insert( size_type index, const basic_string& str );
(desde C++20)
basic_string& insert( size_type index, const basic_string& str, size_type index_str, size_type count );
(5) (hasta C++14)
basic_string& insert( size_type index, const basic_string& str, size_type index_str, size_type count = npos);
(desde C++14)
(hasta C++20)
constexpr basic_string& insert( size_type index, const basic_string& str, size_type index_str, size_type count = npos);
(desde C++20)
iterator insert( iterator pos, CharT ch );
(6) (hasta C++11)
iterator insert( const_iterator pos, CharT ch );
(desde C++11)
(hasta C++20)
constexpr iterator insert( const_iterator pos, CharT ch );
(desde C++20)
void insert( iterator pos, size_type count, CharT ch );
(7) (hasta C++11)
iterator insert( const_iterator pos, size_type count, CharT ch );
(desde C++11)
(hasta C++20)
constexpr iterator insert( const_iterator pos, size_type count, CharT ch );
(desde C++20)
template< class InputIt > void insert( iterator pos, InputIt first, InputIt last );
(8) (hasta C++11)
template< class InputIt > iterator insert( const_iterator pos, InputIt first, InputIt last );
(desde C++11)
(hasta C++20)
template< class InputIt > constexpr iterator insert( const_iterator pos, InputIt first, InputIt last );
(desde C++20)
iterator insert( const_iterator pos, std::initializer_list<CharT> ilist );
(9) (desde C++11)
(hasta C++20)
constexpr iterator insert( const_iterator pos, std::initializer_list<CharT> ilist );
(desde C++20)
template < class T > basic_string& insert( size_type pos, const T& t );
(10) (desde C++17)
(hasta C++20)
template < class T > constexpr basic_string& insert( size_type pos, const T& t );
(desde C++20)
template < class T > basic_string& insert( size_type index, const T& t, size_type index_str, size_type count = npos);
(11) (desde C++17)
(hasta C++20)
template < class T > constexpr basic_string& insert( size_type index, const T& t, size_type index_str, size_type count = npos);
(desde C++20)

Inserta caracteres en la cadena.

1) Inserta count copias del carcter ch en la posicin index
2) Inserta la cadena de caracteres terminada en nulo a la que apunta s en la posicin index. La longitud de la cadena se determina por el primer carcter nulo usando Traits::length(s).
3) Inserta los caracteres en el rango [s, s+count) en la posicin index. El rango puede contener caracteres nulos.
4) Inserta la cadena str en la posicin index.
5) Inserta una cadena, obtenida mediante str.substr(index_str, count) en la posicin index.
6) Inserta el carcter ch antes del carcter al que apunta pos.
7) Inserta count copias del carcter ch antes del elemento (si es que lo hay) al que apunta pos
8) Inserta caracteres del rango [first, last) antes del elemento (si es que lo hay) al que apunta pos. Esta sobrecarga no participa en la resolucin de sobrecarga si InputIt no satisface a InputIterator. (desde C++11)
9) Inserta los elementos de la lista de inicializadores ilist antes del elemento (si es que lo hay) al que apunta pos
10) Implcitamente convierte t a una vista sobre cadena sv como si fuera mediante std::basic_string_view<CharT, Traits> sv = t;, entonces inserta los elementos de sv antes del elemento (si es que lo hay) al que apunta pos, como si fuera mediante insert(pos, sv.data(), sv.size()). Esta sobrecarga solo participa en la resolucin de sobrecargas si std::is_convertible_v<const T&, std::basic_string_view<CharT, Traits>> es true y std::is_convertible_v<const T&, const CharT*> es false.
11) Implcitamente convierte t a una vista sobre cadena sv como si fuera mediante std::basic_string_view<CharT, Traits> sv = t;, entonces inserta, antes del elemento (si es que lo hay) al que apunta pos, los caracteres de la subvista [index_str, index_str+count) of sv. Si la subvista solicitada se pasa del final de sv, o si count == npos, la subvista resultante es [index_str, sv.size()). Si index_str > sv.size(), o si index > size(), se lanza std::out_of_range.. Esta sobrecarga solo participa en la resolucin de sobrecargas si std::is_convertible_v<const T&, std::basic_string_view<CharT, Traits>> es true y std::is_convertible_v<const T&, const CharT*> es false.

Parmetros

index - Posicin en la cual se insertar el contenido.
pos - Iterador antes del cual se insertarn los caracteres.
ch - Carcter a insertar.
count - Nmero de caracteres a insertar.
s - Puntero a la cadena de caracteres a insertar.
str - Cadena a insertar.
first, last - Rango que define los caracteres a insertar.
index_str - Posicin del primer carcter en la cadena str a insertar.
ilist - std::initializer_list de la cual insertar los caracteres.
t - Objeto (convertible a std::basic_string_view) del cual insertar los caracteres.
Requisitos de tipo
-
InputIt debe satisfacer los requisitos de InputIterator.

Valor de retorno

1-5,10-11) *this
6-9) Un iterador que se refiere a la copia del primer carcter insertado, o pos si no se insertaron caracteres (count==0, o first==last, o ilist.size()==0)

Excepciones

1-4, 10) std::out_of_range si index > size()
5) Lanza std::out_of_range si index > size() o si index_str > str.size().
11) Lanza std::out_of_range si index > size() o si index_str > sv.size().

En todos los casos, lanza std::length_error si size() + ins_count > max_size(), donde ins_count es el nmero de caracteres que se insertarn y puede lanzar cualquier excepcin lanzada por Allocator::allocate.

En cualquier caso, si se lanza una excepcin por cualquier razn, esta funcin no tiene efecto (garanta de excepcin fuerte).

(desde C++11)

Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estndares de C++ publicados anteriormente.

ID Aplicado a Comportamiento segn lo publicado Comportamiento correcto
LWG 2946 C++17 La sobrecarga string_view causa ambigedad en algunos casos. Se evit hacindola una plantilla.

Ejemplo

#include <cassert>
#include <iterator>
#include <string>
using namespace std::string_literals;
int main()
{
    std::string s = "jmplr";

    // insert(size_type index, size_type count, char ch)
    s.insert(0, 1, 'E');
    assert("Ejmplr" == s);

    // insert(size_type index, const char* s)
    s.insert(2, "e");
    assert("Ejemplr" == s);

    // insert(size_type index, string const& str)
    s.insert(6, "a"s);
    assert("Ejemplar" == s);

    // insert(size_type index, string const& str,
    //     size_type index_str, size_type count)
    s.insert(8, " es un ejemplo de cadena."s, 0, 14);
    assert("Ejemplar es un ejemplo" == s);

    // insert(const_iterator pos, char ch)
    s.insert(s.cbegin() + s.find_first_of('n') + 1, ':');
    assert("Ejemplar es un: ejemplo" == s);

    // insert(const_iterator pos, size_type count, char ch)
    s.insert(s.cbegin() + s.find_first_of(':') + 1, 2, '=');
    assert("Ejemplar es un:== ejemplo" == s);

    // insert(const_iterator pos, InputIt first, InputIt last)
    {
        std::string seq = " de cadena";
        s.insert(s.begin() + s.find_last_of('e') + 1,
            std::begin(seq), std::end(seq));
        assert("Ejemplar es un:== ejemplo de cadena" == s);
    }

    // insert(const_iterator pos, std::initializer_list<char>)
    s.insert(s.cbegin() + s.find_first_of('g') + 1, { '.' });
    assert("Ejemplar es un:== ejemplo de cadena." == s);
}


Vase tambin

Aade caracteres al final
(funcin miembro pblica) [editar]
Aade un carcter al final
(funcin miembro pblica) [editar]

Web Proxy Viewer  |  New URL  |  Original Page