lower_bound & upper_bound (1)
本帖最後由 tonyh 於 2023-10-12 21:09 編輯
vector- #include<bits/stdc++.h>
- using namespace std;
- vector<int> v;
- //vector<int> v={9,7,5,12,2};
- //vector<int> v(5);
- int main()
- {
- /*
- v[0]=9;
- v[1]=7;
- v[2]=5;
- v[3]=12;
- v[4]=2;
- */
- v.push_back(9);
- v.push_back(2);
- v.push_back(5);
- v.push_back(2);
- v.push_back(5);
- v.push_back(7);
- v.push_back(5);
- v.push_back(12);
- cout<<v.size()<<endl;
- cout<<"-------"<<endl;
- sort(v.begin(),v.end());
- for(int i: v)
- cout<<i<<endl;
- cout<<"-------"<<endl;
- cout<<*lower_bound(v.begin(),v.end(),5)<<endl; //大於或等於目標對象的最小值位置
- cout<<*upper_bound(v.begin(),v.end(),5)<<endl; //大於目標對象的最小值位置
- cout<<*lower_bound(v.begin(),v.end(),12)<<endl;
- cout<<*upper_bound(v.begin(),v.end(),12)<<endl; //找不到(會回傳end()所指向位置)
- cout<<*v.begin()<<endl; //最前面的元素
- cout<<*v.rbegin()<<endl; //最後面的元素
- return 0;
- }
複製代碼 set- #include<bits/stdc++.h>
- using namespace std;
- set<int > s;
- int main()
- {
- s.insert(9);
- s.insert(2);
- s.insert(5);
- s.insert(2);
- s.insert(5);
- s.insert(7);
- s.insert(5);
- s.insert(12);
- cout<<s.size()<<endl;
- cout<<"-------"<<endl;
- for(int i: s)
- cout<<i<<endl;
- cout<<"-------"<<endl;
- cout<<*s.lower_bound(7)<<endl; //大於或等於目標對象的最小值位置
- cout<<*s.upper_bound(7)<<endl; //大於目標對象的最小值位置
- cout<<*s.lower_bound(12)<<endl;
- cout<<*s.upper_bound(12)<<endl; //找不到(會回傳end()所指向位置)
- cout<<*s.begin()<<endl; //最前面的元素
- cout<<*s.rbegin()<<endl; //最後面的元素
- return 0;
- }
複製代碼 |