返回列表 發帖

vector 練習 2

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. vector<int> v;
  4. int main()
  5. {
  6.     v.push_back(7);   //新增元素
  7.     v.push_back(2);
  8.     v.push_back(1);
  9.     v.push_back(3);
  10.     v.push_back(11);
  11.     v.push_back(5);
  12.     sort(v.begin(), v.end());   //基礎排序
  13.     for(int i: v)
  14.         cout<<i<<" ";
  15.     cout<<endl;
  16.     cout<<"------------"<<endl;
  17.     auto it=lower_bound(v.begin(), v.end(), 7);  //大於或等於目標對象的最小值的位址
  18.     cout<<*it<<endl;     //該位址的值
  19.     it=upper_bound(v.begin(), v.end(), 7);      //大於目標對象的最小值的位址
  20.     cout<<*it<<endl;
  21.     cout<<"------------"<<endl;
  22.     it=upper_bound(v.begin(), v.end(), 9);
  23.     cout<<*it<<endl;   //11
  24.     cout<<*(--it)<<endl;   //7
  25.     it=lower_bound(v.begin(), v.end(), 3);
  26.     cout<<*(++it)<<endl;   //5
  27.     cout<<"------------"<<endl;
  28.     it=lower_bound(v.begin(), v.end(), 3);
  29.     cout<<it-v.begin()<<endl;  //取得索引值
  30.     it=find(v.begin(), v.end(), 2);   //非二分搜尋法, 效能較差, 適合用於未排序的資料。
  31.     cout<<it-v.begin()<<endl;
  32.     cout<<"------------"<<endl;
  33.     it=find(v.begin(), v.end(), 12);   //找不到時會回傳end()指向的位址
  34.     if(it==v.end())
  35.         cout<<"no find"<<endl;
  36.     it=upper_bound(v.begin(), v.end(), 12);
  37.     if(it==v.end())
  38.         cout<<"no find"<<endl;
  39.     return 0;
  40. }
  41. //1 2 3 5 7 11
複製代碼

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. vector<int> v;
  4. int main()
  5. {
  6.     v.push_pack(7);
  7.     v.push_pack(2);
  8.     v.push_pack(1);
  9.     v.push_pack(3);
  10.     v.push_pack(11);
  11.     v.push_pack(5);
  12.     sort(v.begin(), v.end());  
  13.     for(int i: v)
  14.         cout<<i<<" ";
  15.     cout<<endl;
  16.     cout<<"--------------"<<endl;
  17.     auto it=lower_bound(v.begin(), v.end(), 7);  
  18.     cout<<*it<<endl;
  19.     it=upper_bound(v.begin(), v.end(), 7);
  20.     cout<<*it<<endl;
  21.     cout<<"--------------"<<endl;
  22.     it=upper_bound(v.begin(), v.end(), 9);
  23.     cout<<*it<<endl;   
  24.     cout<<*(--it)<<endl;   
  25.     it=lower_bound(v.begin(), v.end(), 3);
  26.     cout<<*(++it)<<endl;   
  27.     cout<<"------------"<<endl;
  28.     it=lower_bound(v.begin(), v.end(), 3);
  29.     cout<<it-v.begin()<<endl;  
  30.     it=find(v.begin(), v.end(), 2);   
  31.     cout<<it-v.begin()<<endl;
  32.     cout<<"------------"<<endl;
  33.     it=find(v.begin(), v.end(), 12);   
  34.     if(it==v.end())
  35.         cout<<"no find"<<endl;
  36.     it=upper_bound(v.begin(), v.end(), 12);
  37.     if(it==v.end())
  38.         cout<<"no find"<<endl;
  39.     return 0;
  40. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. vector<int> v;
  4. int main()
  5. {
  6.    v.push_back(7);
  7.    v.push_back(3);
  8.    v.push_back(2);
  9.    v.push_back(4);
  10.    v.push_back(11);
  11.    v.push_back(5);
  12.    sort(v.begin(),v.end());
  13.    for(int i:v)
  14.         cout<<i<<" ";
  15.    cout<<endl;
  16.    auto it=lower_bound(v.begin(),v.end(),7);
  17.    cout<<*it<<endl;
  18.    it=upper_bound(v.begin(),v.end(),7);
  19.    cout<<*it<<endl;
  20.    cout<<*(--it)<<endl;
  21.    cout<<*(++it)<<endl;
  22.    cout<<it-v.begin()<<endl;
  23.    it=find(v.begin(),v.end(), 2);
  24.    it=find(v.begin(), v.end(), 12);
  25.    if(it==v.end())
  26.     cout<<"no"<<endl;
  27.    
  28.     return 0;
  29. }
複製代碼

TOP

本帖最後由 許晏睿 於 2023-10-28 19:59 編輯
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. vector<int> v={2,5,7,6,4};//24567
  4. int main()
  5. {
  6.     sort(v.begin(),v.end());
  7.     for(int i:v)
  8.         cout<<i<<" ";
  9.     cout<<endl<<"=================="<<endl;
  10.     auto it=lower_bound(v.begin(),v.end(),7);
  11.     cout<<*it<<endl;
  12.     cout<<"=================="<<endl;
  13.     it=upper_bound(v.begin(),v.end(),4);//4
  14.     cout<<*(--it)<<endl;
  15.     it=lower_bound(v.begin(),v.end(),5);//6
  16.     cout<<*(++it);
  17.     cout<<endl<<"=================="<<endl;
  18.     it=lower_bound(v.begin(),v.end(),6);//3
  19.     cout<<it-v.begin()<<endl;
  20.     it=find(v.begin(),v.end(),2);//0
  21.     cout<<it-v.begin()<<endl;
  22.     cout<<"=================="<<endl;
  23.     it=find(v.begin(),v.end(),1);
  24.     if(it==v.end())
  25.         cout<<"no find"<<endl;
  26.     return 0;
  27. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main(){
  4.     vector<int> v;
  5.     v.push_back(7);
  6.     v.push_back(2);
  7.     v.push_back(1);
  8.     v.push_back(3);
  9.     v.push_back(11);
  10.     v.push_back(5);

  11.     sort(v.begin(),v.end());
  12.     for(int i: v)
  13.         cout<<i<<" ";
  14.     cout<<endl;
  15.     cout<<"------------"<<endl;

  16.     auto it=lower_bound(v.begin(),v.end(),7);  //大於等於目標對象的最小值的位址
  17.     cout<<*it<<endl;     //該位址的值
  18.     it=upper_bound(v.begin(),v.end(),7);      //大於目標對象的最小值的位址
  19.     cout<<*it<<endl;
  20.     cout<<"------------"<<endl;

  21.     it=upper_bound(v.begin(),v.end(),9);
  22.     cout<<*it<<endl;   
  23.     cout<<*(--it)<<endl;
  24.     it=lower_bound(v.begin(), v.end(), 3);
  25.     cout<<*(++it)<<endl;  

  26.     cout<<"------------"<<endl;
  27.     it=lower_bound(v.begin(),v.end(),3);
  28.     cout<<it-v.begin()<<endl;//取得索引值
  29.     it=find(v.begin(),v.end(),2);//非二分搜尋法, 效能較差, 適合未排序的資料。
  30.     cout<<it-v.begin()<<endl;
  31.     cout<<"------------"<<endl;
  32.      it=find(v.begin(), v.end(), 12);//找不到時會回傳end()指向的位址
  33.     if(it==v.end())
  34.         cout<<"no find"<<endl;
  35.     it=upper_bound(v.begin(), v.end(), 12);
  36.     if(it==v.end())
  37.         cout<<"no find"<<endl;
  38.     return 0;
  39. }
複製代碼

TOP

返回列表