1. 程式人生 > 其它 >C++STL常用操作之prev、next篇

C++STL常用操作之prev、next篇

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的內容還有很多很多,這裡簡單介紹

發現問題歡迎指正!

有不懂請留言!