我有一个这样的代码片段:
int* array = new int[size];
std::reverse_iterator<int*> it2 = ... // arbitrary in array
我如何计算 last 和 之间的距离it2
?我试过这个,但它返回零:
std::distance(std::reverse_iterator<int*>(array + size), it2);
我有一个这样的代码片段:
int* array = new int[size];
std::reverse_iterator<int*> it2 = ... // arbitrary in array
我如何计算 last 和 之间的距离it2
?我试过这个,但它返回零:
std::distance(std::reverse_iterator<int*>(array + size), it2);
你计算距离的方法对我来说是正确的。当然,10
使用gcc或clang时会打印:
#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;
}