Как std :: reample_iterator удерживает один перед началом?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как std :: reample_iterator удерживает один перед началом?

Сообщение Anonymous »

Это пример кода с использованием std :: reample_iterator :

Код: Выделить всё

template
class Stack {
T arr[SIZE];
size_t pos = 0;
public:
T pop() {
return arr[--pos];
}
Stack& push(const T& t) {
arr[pos++] = t;
return *this;
}
auto begin() {
return std::reverse_iterator(arr+pos);
}
auto end() {
return std::reverse_iterator(arr);
// ^ does reverse_iterator take this `one back`? how?
}
};

int main() {
Stack s;
s.push(5).push(15).push(25).push(35);
for(int val: s) {
std::cout  в качестве адаптера для другого итератора, недавно адаптированный  end < /em> должен быть один Перед оригиналом  begin . Однако вызов std :: prev 
on begin - это ub.
Как std :: reverse_iterator удерживает один перед началом?

Подробнее здесь: https://stackoverflow.com/questions/676 ... fore-begin
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Диапазон на основе пары
    Anonymous » » в форуме C++
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Как можно привести Iterator к Iterator?
    Anonymous » » в форуме JAVA
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Как можно привести Iterator к Iterator?
    Anonymous » » в форуме JAVA
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Как я могу проверить, может ли вариант std :: удерживает определенный тип
    Anonymous » » в форуме C++
    0 Ответы
    0 Просмотры
    Последнее сообщение Anonymous
  • `std::map<std::string, enum{1, 2, 3, 4}>` (или std::map<std::string, tuple<bool, bool>>`) кэширует` против `std: :set<st
    Anonymous » » в форуме C++
    0 Ответы
    322 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»