標題:
vector 練習 2
[打印本頁]
作者:
tonyh
時間:
2023-10-20 21:36
標題:
vector 練習 2
本帖最後由 tonyh 於 2023-10-20 21:38 編輯
#include<bits/stdc++.h>
using namespace std;
vector<int> v;
int main()
{
v.push_back(7); //新增元素
v.push_back(2);
v.push_back(1);
v.push_back(3);
v.push_back(11);
v.push_back(5);
sort(v.begin(), v.end()); //基礎排序
for(int i: v)
cout<<i<<" ";
cout<<endl;
cout<<"------------"<<endl;
auto it=lower_bound(v.begin(), v.end(), 7); //大於或等於目標對象的最小值的位址
cout<<*it<<endl; //該位址的值
it=upper_bound(v.begin(), v.end(), 7); //大於目標對象的最小值的位址
cout<<*it<<endl;
cout<<"------------"<<endl;
it=upper_bound(v.begin(), v.end(), 9);
cout<<*it<<endl; //11
cout<<*(--it)<<endl; //7
it=lower_bound(v.begin(), v.end(), 3);
cout<<*(++it)<<endl; //5
cout<<"------------"<<endl;
it=lower_bound(v.begin(), v.end(), 3);
cout<<it-v.begin()<<endl; //取得索引值
it=find(v.begin(), v.end(), 2); //非二分搜尋法, 效能較差, 適合用於未排序的資料。
cout<<it-v.begin()<<endl;
cout<<"------------"<<endl;
it=find(v.begin(), v.end(), 12); //找不到時會回傳end()指向的位址
if(it==v.end())
cout<<"no find"<<endl;
it=upper_bound(v.begin(), v.end(), 12);
if(it==v.end())
cout<<"no find"<<endl;
return 0;
}
//1 2 3 5 7 11
複製代碼
作者:
陳宥穎
時間:
2023-10-21 09:46
#include<bits/stdc++.h>
using namespace std;
int main()
{
cin.tie(0);
cin.sync_with_stdio(0);
vector<int> v;
v.push_back(7);
v.push_back(2);
v.push_back(1);
v.push_back(3);
v.push_back(11);
v.push_back(5);
sort(v.begin(),v.end());
for(int i:v)
cout<<i<<" ";
cout<<endl;
for(auto i=v.begin(); i!=v.end(); i++)
cout<<*i<<" ";
cout<<endl;
vector<int>::iterator it=lower_bound(v.begin(),v.end(),7);
cout<<*it<<endl;
it=upper_bound(v.begin(),v.end(),7);
cout<<*it<<endl;
it--;
cout<<*(++it)<<endl;
cout<<*it<<endl;
it=find(v.begin(), v.end(), 2);
cout<<*it<<endl;
cout<<it-v.begin()<<endl;
it=find(v.begin(),v.end(),55);
if(it==v.end())
cout<<"no find";
return 0;
}
複製代碼
作者:
林祐霆
時間:
2023-10-27 19:11
本帖最後由 林祐霆 於 2023-10-27 19:14 編輯
#include<bits/stdc++.h>
using namespace std;
vector<int> v;
bool compare(int a, int b)
{
return a>b;
}
int main()
{
v.push_back(7);
v.push_back(2);
v.push_back(1);
v.push_back(3);
v.push_back(11);
v.push_back(5);
sort(v.begin(), v.end());
for(int i: v)
cout<<i<<" ";
cout<<endl;
cout<<"-------"<<endl;
auto it=lower_bound(v.begin(), v.end(),7); //>=9最接近的位置
cout<<*it<<endl; //*: 取該位置的值
it=upper_bound(v.begin(), v.end(), 7); //>9最接近的位置
cout<<*it<<endl;
cout<<"-------"<<endl;
it=upper_bound(v.begin(), v.end(), 9);
cout<<*it<<endl;
cout<<*(--it)<<endl;
cout<<"-------"<<endl;
it=lower_bound(v.begin(), v.end(),3);
cout<<*(++it)<<endl;
cout<<it-v.begin()<<endl;
cout<<"------------"<<endl;
it=find(v.begin(), v.end(), 12); //找不到時會回傳end()指向的位址
if(it==v.end())
cout<<"no find"<<endl;
it=upper_bound(v.begin(), v.end(), 12);
if(it==v.end())
cout<<"no find"<<endl;
return 0;
//1 2 3 5 7 11
}
複製代碼
作者:
洪承廷
時間:
2023-10-27 19:17
#include<bits/stdc++.h>
using namespace std;
vector<int> v;
int main()
{
v.push_back(7);
v.push_back(2);
v.push_back(1);
v.push_back(3);
v.push_back(11);
v.push_back(5);
sort(v.begin(), v.end()); //排序
for(int i: v)
cout<<i<<" ";
cout<<endl;
cout<<"------------"<<endl;
auto it=lower_bound(v.begin(), v.end(), 7); //>=7
cout<<*it<<endl; //該位址的值
it=upper_bound(v.begin(), v.end(), 7); //>7
cout<<*it<<endl;
cout<<"------------"<<endl;
it=upper_bound(v.begin(), v.end(), 9);
cout<<*it<<endl; //11
cout<<*(--it)<<endl; //7
it=lower_bound(v.begin(), v.end(), 3);
cout<<*(++it)<<endl; //5
cout<<"------------"<<endl;
it=lower_bound(v.begin(), v.end(), 3);
cout<<it-v.begin()<<endl; //取得索引值
it=find(v.begin(), v.end(), 2); //非二分搜尋法, 效能較差, 適合用於未排序的資料。
cout<<it-v.begin()<<endl;
cout<<"------------"<<endl;
it=find(v.begin(), v.end(), 12);
if(it==v.end())
cout<<"no find"<<endl;
it=upper_bound(v.begin(), v.end(), 12);
if(it==v.end())
cout<<"no find"<<endl;
return 0;
}
複製代碼
作者:
黃昱齊
時間:
2023-10-27 19:19
#include<bits/stdc++.h>
using namespace std;
vector<int> v;
int main()
{
v.push_back(7); //新增元素
v.push_back(2);
v.push_back(1);
v.push_back(3);
v.push_back(11);
v.push_back(5);
sort(v.begin(), v.end()); //基礎排序
for(int i: v)
cout<<i<<" ";
cout<<endl;
cout<<"------------"<<endl;
auto it=lower_bound(v.begin(), v.end(), 7); //大於或等於目標對象的最小值的位址
cout<<*it<<endl; //該位址的值
it=upper_bound(v.begin(), v.end(), 7); //大於目標對象的最小值的位址
cout<<*it<<endl;
cout<<"------------"<<endl;
it=upper_bound(v.begin(), v.end(), 9);
cout<<*it<<endl; //11
cout<<*(--it)<<endl; //7
it=lower_bound(v.begin(), v.end(), 3);
cout<<*(++it)<<endl; //5
cout<<"------------"<<endl;
it=lower_bound(v.begin(), v.end(), 3);
cout<<it-v.begin()<<endl; //取得索引值
it=find(v.begin(), v.end(), 2); //非二分搜尋法, 效能較差, 適合用於未排序的資料。
cout<<it-v.begin()<<endl;
cout<<"------------"<<endl;
it=find(v.begin(), v.end(), 12); //找不到時會回傳end()指向的位址
if(it==v.end())
cout<<"no find"<<endl;
it=upper_bound(v.begin(), v.end(), 12);
if(it==v.end())
cout<<"no find"<<endl;
return 0;
}
複製代碼
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2