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