Spec-Zone.ru › C++

C++ named requirements: ReversibleContainer

A ReversibleContainer is a Container that has iterators that meet the requirements of either LegacyBidirectionalIterator or LegacyRandomAccessIterator. Such iterators allow a ReversibleContainer to be iterated over in reverse.

Требования

X Тип контейнера
T Тип элемента
a Объекты типа X

Типы

Выражение Возвращаемый тип Условия
X::reverse_iterator Тип итератора, тип значения которого — T reverse_iterator<iterator>
X::const_reverse_iterator Тип константного итератора, тип значения которого — T reverse_iterator<const_iterator>

Члены функций

Выражение Возвращаемый тип Условия Сложность
a.rbegin() reverse_iterator; const_reverse_iterator для константного a reverse_iterator(end()) Постоянная
a.rend() reverse_iterator; const_reverse_iterator для константного a reverse_iterator(begin()) Постоянная
a.crbegin() const_reverse_iterator const_cast<X const&>(a).rbegin() Постоянная
a.crend() const_reverse_iterator const_cast<X const&>(a).rend() Постоянная

Стандартная библиотека

  • std::array
  • std::deque
  • std::list
  • std::vector
  • std::map
  • std::multimap
  • std::set
  • std::multiset

Пример

Следующий пример итерируется по vector (у которой итераторы произвольного доступа) в обратном порядке.

#include <iostream>
#include <vector>
 
int main()
{
    std::vector<int> v = {3, 1, 4, 1, 5, 9};
 
    for (std::vector<int>::const_reverse_iterator i{v.crbegin()}; i != v.crend(); ++i)
        std::cout << *i << ' ';
    std::cout << '\n';
}

Вывод:

9 5 1 4 1 3

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/named_req/ReversibleContainer

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API