prev()
函數在 C++ 中通常與迭代器一起使用,它用于獲取當前迭代器的前一個元素。這個函數在
以下是 prev()
函數的常見用法:
std::vector
, std::list
等)中使用 prev()
函數:#include<iostream>
#include<vector>
#include<iterator>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
auto it = vec.begin();
// 將迭代器移動到第二個元素
++it;
// 使用 prev() 函數獲取前一個元素
auto prev_it = std::prev(it);
std::cout << "Previous element: " << *prev_it<< std::endl;
return 0;
}
std::map
, std::set
等)中使用 prev()
函數:#include<iostream>
#include <map>
#include<iterator>
int main() {
std::map<int, std::string> my_map = {{1, "one"}, {2, "two"}, {3, "three"}};
// 查找鍵為 2 的元素
auto it = my_map.find(2);
// 使用 prev() 函數獲取前一個元素
auto prev_it = std::prev(it);
std::cout << "Previous element: ("<< prev_it->first << ", "<< prev_it->second << ")"<< std::endl;
return 0;
}
需要注意的是,prev()
函數不能用于輸入迭代器,因為輸入迭代器只支持單向迭代。此外,在使用 prev()
函數之前,請確保迭代器不是指向容器的第一個元素,否則可能會導致未定義行為。