C++STL常用操作之prev、next篇
阿新 • • 發佈:2021-03-29
C++STL常用操作之prev、next篇
簡介:
1.prev:反向
2.next:位移
我們先建立一個set容器,在容器中放入1-10這10個數字
set<int> s;
for(int i = 1;i <= 10;++i)
s.insert(i);
此時容器s中的元素為1,2,3,4,5,6,7,8,9,10
prev:
如果用到lower_bound函式
cout<<*s.lower_bound(5)<<"\n";
應該輸出大於等於5的第一個數,此處應該是輸出5
那麼我們使用prev呢?
cout<<*prev (s.lower_bound(5))<<"\n";
這裡輸出的是4,也就是說剛開始的大於等於變成了小於,有著反向的效果。
next:
auto it = s.begin();
cout<<*next(it,2);
這裡輸出的是3,也就是s.begin()的後兩個位置的數。
如果引數是負數呢?
it = --s.end();
cout<<*next(it,-3);
輸出就是前三個位置的數了,也就是7。
#include<iostream>
#include<set>
using namespace std;
int main(){
set<int> s;
for(int i = 1;i <= 10;++i)
s.insert(i);
cout<<*s.lower_bound(5)<<"\n";
cout<<*prev(s.lower_bound(5))<<"\n";
auto it = s.begin();
cout<<*next(it,2)<<"\n";
it = --s.end();
cout<<*next(it,-3);
return 0;
}
prev和next的內容還有很多很多,這裡簡單介紹
發現問題歡迎指正!
有不懂請留言!