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

std::move_iterator

Материал из cppreference.com
< cpp‎ | iterator

 
 
Iterator библиотеки
Iterator примитивов
Оригинал:
Iterator primitives
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
iterator_traits
input_iterator_tag
output_iterator_tag
forward_iterator_tag
bidirectional_iterator_tag
random_access_iterator_tag
iterator
Iterator адаптеров
Оригинал:
Iterator adaptors
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
reverse_iterator
Поток итераторы
Оригинал:
Stream iterators
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
istream_iterator
ostream_iterator
istreambuf_iterator
ostreambuf_iterator
Iterator операций
Оригинал:
Iterator operations
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
advance
distance
prev(C++11)
next(C++11)
Диапазон доступа
Оригинал:
Range access
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
begin(C++11)
end(C++11)
 
std::istream_iterator
Член функций
Оригинал:
Member functions
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
move_iterator::move_iterator
move_iterator::operator=
move_iterator::base
move_iterator::operator*
move_iterator::operator->
move_iterator::operator[]
move_iterator::operator++
move_iterator::operator+
move_iterator::operator+=
move_iterator::operator--
move_iterator::operator-
move_iterator::operator-=
Не являющиеся членами функций
Оригинал:
Non-member functions
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
operator==
operator!=
operator<
operator>
operator+
operator-
 
Определено в заголовочном файле <iterator>
template <class Iterator>
class move_iterator
(начиная с C++11)
std::move_iterator это итератор, адаптер, который ведет себя так же, как основной итератор (которая должна быть по крайней мере InputIterator), кроме того, что разыменование преобразует значение возвращается основных итераторов в RValue. Если это итератор используется как итератор ввода, эффект является то, что значения переехали из, а не скопированные из.
Оригинал:
std::move_iterator is an iterator adaptor which behaves exactly like the underlying iterator (which must be at least an InputIterator), except that dereferencing converts the value returned by the underlying iterator into an rvalue. If this iterator is used as an input iterator, the effect is that the values are moved from, rather than copied from.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

Содержание

[править] Типы-члены

Тип члена Определение
iterator_type Iterator
difference_type std::iterator_traits<Iterator>::difference_type
pointer Iterator
value_type std::iterator_traits<Iterator>::value_type
iterator_category std::iterator_traits<Iterator>::iterator_category
reference value_type&&

[править] Функции-члены

создает новый адаптер итератора
Оригинал:
constructs a new iterator adaptor
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член) [edit]
назначает другого итератора
Оригинал:
assigns another iterator
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член) [edit]
доступ к основной итератор
Оригинал:
accesses the underlying iterator
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член) [edit]
обращается то к элементу
Оригинал:
accesses the pointed-to element
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член) [edit]
получает RValue ссылкой на проиндексированы элемент
Оригинал:
obtains rvalue reference to indexed element
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член) [edit]
авансы или уменьшает итератор
Оригинал:
advances or decrements the iterator
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член) [edit]

[править] Функции, не являющиеся членами

сравнивает основные итераторы
Оригинал:
compares the underlying iterators
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон функции) [edit]
перемещает итератор
Оригинал:
advances the iterator
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон функции) [edit]
вычисляет расстояние между двумя адаптерами итераторов
Оригинал:
computes the distance between two iterator adaptors
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон функции) [edit]

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

#include <iostream>
#include <algorithm>
#include <vector>
#include <iterator>
#include <numeric>
int main()
{
    std::vector<std::string> v{"this", "is", "an", "example"};
 
    std::cout << "Old contents of the vector: ";
    for(auto& s : v)
        std::cout << '"' << s << "\" ";
 
    typedef std::vector<std::string>::iterator iter_t;
    std::string concat = std::accumulate(
                             std::move_iterator<iter_t>(v.begin()),
                             std::move_iterator<iter_t>(v.end()),
                             std::string());  // Can be simplified with std::make_move_iterator
 
    std::cout << "\nConcatenated as string: " << concat << '\n'
              << "New contents of the vector: ";
    for(auto& s : v)
        std::cout << '"' << s << "\" ";
    std::cout << '\n';
}

Вывод:

Old contents of the vector: "this" "is" "an" "example"
Concatenated as string: thisisanexample
New contents of the vector: "" "" "" ""

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

создает std::move_iterator типа выводится из аргументов
Оригинал:
creates a std::move_iterator of type inferred from the argument
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон функции) [edit]