📅  最后修改于: 2023-12-03 15:14:03.051000             🧑  作者: Mango
在 C++ 中, std::prev
是一个函数,其作用是返回迭代器的上一个元素的迭代器。
template< class BidirectionalIterator >
BidirectionalIterator prev( BidirectionalIterator it,
typename std::iterator_traits<BidirectionalIterator>::difference_type n = 1 );
std::prev
接收两个参数:
it
:指向迭代器的指针,表示需要获取前面一个元素的迭代器。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
返回的迭代器指向前一个元素,而不是当前迭代器所指向的元素的副本。