Пространства имён
Варианты
Действия

std::copy_backward

Материал из cppreference.com
< cpp‎ | algorithm
 
 
Алгоритмы
Функции
Немодифицирующие линейные операции
Модифицирующие линейные операции
Разделение
Сортировка (на отсортированных промежутках)
Бинарный поиск (на отсортированных промежутках)
Множества (на отсортированных промежутках)
Куча
Минимум/максимум
Числовые операции
Библиотека C
 
Определено в заголовочном файле <algorithm>
template< class BidirectionalIterator1, class BidirectionalIterator2 >

BidirectionalIterator2 copy_backward( BidirectionalIterator1 first,
                                      BidirectionalIterator1 last,

                                      BidirectionalIterator2 d_last );

Копирует элементы из промежутка [first, last) в промежуток, кончающийся в d_last. Элементы копируются в обратном порядке (последний элемент копируется первым), но их относительный порядок сохраняется.

Содержание

[править] Параметры

first, last - копируемый промежуток элементов
d_last - конец целевого промежутка. Если d_last находится внутри [first, last), то вместо std::copy_backward нужно использовать std::copy.

[править] Возвращаемое значение

итератор на последний скопированный элемент.

[править] Сложность

Ровно last - first присваиваний.

[править] Возможная реализация

[править] Пример

#include <algorithm>
#include <iostream>
 
int main()
{
    std::vector<int> from_vector;
    for (int i = 0; i < 10; i++) {
        from_vector.push_back(i);
    }
 
    std::vector<int> to_vector(15);
 
    std::copy_backward(from_vector.begin(), from_vector.end(), to_vector.end());
 
    std::cout << "to_vector contains: ";
    for (unsigned int i = 0; i < to_vector.size(); i++) {
        std::cout << to_vector[i] << " ";
    }
 }

Вывод:

to_vector contains: 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9

[править] См. также

Копирует ряд элементов
(шаблон функции) [edit]