簡體   English   中英

計算兩個 std::reverse_iterator 之間的 std::distance

[英]calculate std::distance between two std::reverse_iterators

我有一個這樣的代碼片段:

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

我如何計算 last 和it2之間的距離? 我試過這個,但它返回零:

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

你計算距離的方法在我看來是正確的。 當然,這在使用gccclang時會打印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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM