返回列表 發帖

lower_bound & upper_bound (1)

本帖最後由 tonyh 於 2023-10-12 21:09 編輯

vector
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. vector<int> v;
  4. //vector<int> v={9,7,5,12,2};
  5. //vector<int> v(5);
  6. int main()
  7. {
  8.     /*
  9.     v[0]=9;
  10.     v[1]=7;
  11.     v[2]=5;
  12.     v[3]=12;
  13.     v[4]=2;
  14.     */
  15.     v.push_back(9);
  16.     v.push_back(2);
  17.     v.push_back(5);
  18.     v.push_back(2);
  19.     v.push_back(5);
  20.     v.push_back(7);
  21.     v.push_back(5);
  22.     v.push_back(12);
  23.     cout<<v.size()<<endl;
  24.     cout<<"-------"<<endl;
  25.     sort(v.begin(),v.end());
  26.     for(int i: v)
  27.         cout<<i<<endl;
  28.     cout<<"-------"<<endl;
  29.     cout<<*lower_bound(v.begin(),v.end(),5)<<endl;    //大於或等於目標對象的最小值位置
  30.     cout<<*upper_bound(v.begin(),v.end(),5)<<endl;   //大於目標對象的最小值位置
  31.     cout<<*lower_bound(v.begin(),v.end(),12)<<endl;
  32.     cout<<*upper_bound(v.begin(),v.end(),12)<<endl;  //找不到(會回傳end()所指向位置)
  33.     cout<<*v.begin()<<endl;     //最前面的元素
  34.     cout<<*v.rbegin()<<endl;    //最後面的元素
  35.     return 0;
  36. }
複製代碼
set
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. set<int > s;
  4. int main()
  5. {
  6.     s.insert(9);
  7.     s.insert(2);
  8.     s.insert(5);
  9.     s.insert(2);
  10.     s.insert(5);
  11.     s.insert(7);
  12.     s.insert(5);
  13.     s.insert(12);
  14.     cout<<s.size()<<endl;
  15.     cout<<"-------"<<endl;
  16.     for(int i: s)
  17.         cout<<i<<endl;
  18.     cout<<"-------"<<endl;
  19.     cout<<*s.lower_bound(7)<<endl;    //大於或等於目標對象的最小值位置
  20.     cout<<*s.upper_bound(7)<<endl;   //大於目標對象的最小值位置
  21.     cout<<*s.lower_bound(12)<<endl;
  22.     cout<<*s.upper_bound(12)<<endl;  //找不到(會回傳end()所指向位置)
  23.     cout<<*s.begin()<<endl;     //最前面的元素
  24.     cout<<*s.rbegin()<<endl;    //最後面的元素
  25.     return 0;
  26. }
複製代碼

返回列表