📜  C++中的std :: prev(1)

📅  最后修改于: 2023-12-03 15:14:03.051000             🧑  作者: Mango

C++ 中的 std::prev

在 C++ 中, std::prev 是一个函数,其作用是返回迭代器的上一个元素的迭代器。

用法
template< class BidirectionalIterator >
BidirectionalIterator prev( BidirectionalIterator it, 
                             typename std::iterator_traits<BidirectionalIterator>::difference_type n = 1 );

std::prev 接收两个参数:

  1. it:指向迭代器的指针,表示需要获取前面一个元素的迭代器。
  2. n:可选参数,表示想要返回的前面的元素的数量,其默认值为 1。
示例
#include <iostream>
#include <vector>
#include <iterator>

int main() {
    std::vector<int> v{ 1, 2, 3, 4, 5 };
    auto it = std::prev(v.end()); // Get the iterator to the last element
    std::cout << *it << '\n'; // Output: 5
    auto it2 = std::prev(it, 2); // Get the iterator to the third last element
    std::cout << *it2 << '\n'; // Output: 3
    return 0;
}

在上面的示例中,我们有一个存储整数的向量,我们使用 std::prev 得到该向量的最后一个元素的指向。然后,我们再使用 std::prev 得到指向向量中倒数第三个元素的指针。最后输出了这两个元素的值。

注意事项
  • std::prev 返回的迭代器指向前一个元素,而不是当前迭代器所指向的元素的副本。
  • 必须使用支持随机访问的迭代器来使用第二个可选参数,否则会导致编译时错误。