Board logo

標題: lower_bound & upper_bound (2) [打印本頁]

作者: tonyh    時間: 2023-10-12 20:08     標題: lower_bound & upper_bound (2)

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

set
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. set<int> s;
  4. //set<int> s={9,7,5,12,2};
  5. int main()
  6. {
  7.     s.insert(9);
  8.     s.insert(2);
  9.     s.insert(5);
  10.     s.insert(2);
  11.     s.insert(12);
  12.     s.insert(7);
  13.     cout<<s.size()<<endl;
  14.     cout<<"-----"<<endl;
  15.     for(int i: s)
  16.         cout<<i<<endl;
  17.     cout<<"-----"<<endl;
  18.     for(auto it=s.begin(); it!=s.end(); it++)
  19.         cout<<*it<<endl;
  20.     cout<<"-----"<<endl;
  21.     auto it=s.upper_bound(8);
  22.     //cout<<it-s.begin()<<endl;   //行不通
  23.     cout<<*it<<endl;
  24.     cout<<*--it<<endl;
  25.     cout<<"-----"<<endl;
  26.     it=s.upper_bound(13);
  27.     if(it==s.end())
  28.         cout<<"no find"<<endl;
  29.     else
  30.         cout<<*it<<endl;
  31.     it=--s.lower_bound(2);
  32.     if(it==s.end())
  33.         cout<<"no find"<<endl;
  34.     else
  35.         cout<<*it<<endl;
  36.     return 0;
  37. }
  38. //  2 5 7 9 12
複製代碼
map
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. map<int, string> mp;
  4. //map<int, string> mp={{3, "t"},{1, "o"}};
  5. int main()
  6. {
  7.     mp[9]="n";
  8.     mp[5]="f";
  9.     mp[12]="t";
  10.     mp[7]="s";
  11.     mp[2]="t";
  12.     //mp.insert(mp.begin(), {3, "t"});
  13.     cout<<mp.size()<<endl;
  14.     for(pair<int, string> p: mp)
  15.         cout<<p.first<<": "<<p.second<<endl;
  16.     cout<<"-------"<<endl;
  17.     for(auto it=mp.begin(); it!=mp.end(); it++)
  18.         cout<<(*it).first<<": "<<(*it).second<<endl;
  19.     cout<<"-------"<<endl;
  20.     auto it=mp.upper_bound(8);
  21.     cout<<(*it).first<<": "<<(*it).second<<endl;
  22.     it=--mp.upper_bound(8);
  23.     cout<<(*it).first<<": "<<(*it).second<<endl;
  24.     cout<<"-------"<<endl;
  25.     it=mp.upper_bound(12);
  26.     if(it==mp.end())
  27.         cout<<"no find"<<endl;
  28.     else
  29.         cout<<(*it).first<<": "<<(*it).second<<endl;
  30.     it=--mp.lower_bound(2);
  31.     if(it==mp.end())
  32.         cout<<"no find"<<endl;
  33.     else
  34.         cout<<(*it).first<<": "<<(*it).second<<endl;
  35.     return 0;
  36. }
  37. //  2 5 7 9 12
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2