std::prev
是 C++ 標準庫
std::prev
的主要作用是方便地獲取當前迭代器的前一個迭代器,而不需要手動進行減法操作。這在處理容器(如 std::vector
、std::list
等)時非常有用,特別是在需要遍歷或操作元素之間的相對位置時。
函數原型如下:
template<class BidirectionalIterator>
BidirectionalIterator prev(BidirectionalIterator it,
typename std::iterator_traits<BidirectionalIterator>::difference_type n = 1);
其中,it
是一個雙向迭代器,n
是一個可選參數,表示要向前移動的距離,默認值為 1。
使用示例:
#include<iostream>
#include<vector>
#include<iterator>
int main() {
std::vector<int> v = {1, 2, 3, 4, 5};
auto it = v.begin() + 2; // 指向第三個元素(值為3)
auto prev_it = std::prev(it); // 獲取前一個迭代器,指向第二個元素(值為2)
std::cout << *prev_it<< std::endl; // 輸出 2
return 0;
}
總之,std::prev
是 C++ 標準庫中的一個實用函數,用于獲取給定迭代器的前一個迭代器。它提供了一種簡潔、安全的方式來處理迭代器之間的相對位置。