Namespaces
Variants

std::forward_list<T,Allocator>:: prepend_range

From cppreference.net

template < container-compatible-range < T > R >
void prepend_range ( R && rg ) ;
(depuis C++23)
(constexpr depuis C++26)

Insère, dans un ordre non inversé, des copies des éléments de rg avant begin() . Chaque itérateur dans la plage rg est déréférencé exactement une fois.

Aucun itérateur ou référence n'est invalidé.

Table des matières

Paramètres

rg - un intervalle compatible avec un conteneur , c'est-à-dire un input_range dont les éléments sont convertibles en T
Exigences de type
-
Si T n'est pas EmplaceConstructible dans forward_list à partir de * ranges:: begin ( rg ) , le comportement est indéfini.

Complexité

Linéaire en taille de rg .

Notes

Macro de test de fonctionnalité Valeur Std Fonctionnalité
__cpp_lib_containers_ranges 202202L (C++23) Construction et insertion compatibles avec les gammes

Exemple

#include <algorithm>
#include <cassert>
#include <forward_list>
#include <vector>
int main()
{
    auto container = std::forward_list{0, 1, 2, 3};
    const auto rg = std::vector{-3, -2, -1};
#if __cpp_lib_containers_ranges
    container.prepend_range(rg);
#else
    container.insert_after(container.before_begin(), rg.cbegin(), rg.cend());
#endif
    assert(std::ranges::equal(container, std::forward_list{-3, -2, -1, 0, 1, 2, 3}));
}

Voir aussi

insère une plage d'éléments
(fonction membre publique)
insère une plage d'éléments après un élément
(fonction membre publique)
insère un élément au début
(fonction membre publique)
construit un élément en place au début
(fonction membre publique)