вычислить std :: расстояние между двумя std :: reverse_iterators

У меня есть такой фрагмент кода:

int* array = new int[size];
std::reverse_iterator<int*> it2 = ... // arbitrary in array

Как я могу вычислить расстояние между последним и it2?
Я попробовал это, но он возвращает ноль:

std::distance(std::reverse_iterator<int*>(array + size), it2);

0

Решение

Ваш подход к вычислению расстояния мне кажется правильным. Конечно, это печатает 10 когда используешь НКУ или же лязг:

#include <algorithm>
#include <iostream>
#include <iterator>

int main()
{
const int size = 20;
int* array = new int[size];
std::cout << "distance="<< std::distance(std::reverse_iterator<int*>(array + 20),
std::reverse_iterator<int*>(array + 10))
<< '\n';
delete[] array;
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]