令,
#include<vector>
vector<int>v{1,2,3,-1,-2,-3};
如果向量按升序或降序排序,那麼你可以用複雜度爲O(1)找到它。
對於向上升序的向量,第一個元素是最小的元素,可以通過v [0](基於0的索引)得到它,最後一個元素是最大的元素,可以通過v [sizeOfVector-1 ]。
如果向量按降序排列,那麼最後一個元素是最小的元素,您可以通過v [sizeOfVector-1]得到它,第一個元素是最大的元素,您可以通過v [0]得到它。
如果向量沒有排序,那麼你必須遍歷向量來獲得最小/最大的元素。在這種情況下,時間複雜度是O(n),這裏n是向量的大小。
int smallest_element=v[0] //let, first element is the smallest one
int largest_element = v[0] //also let, first element is the biggest one
for(int i =1;i<sizeOfVector;i++) //start iterating from the second element
{
if(v[i]<smallest_element)
{
smallest_element=arr[i];
}
if(v[i]>largest_element)
{
largest_element=v[i];
}
}
可以使用迭代器,
for (vector<int>:: iterator it=v.begin(); it!=v.end(); it++)
{
if(*it<smallest_element) //used *it (with asterisk), because it's an iterator
{
smallest_element=*it;
}
if(*it>largest_element)
{
largest_element=*it;
}
}
可以在輸入部分計算它(當你從一個給定的矢量找到最小的或最大的元素)
int smallest_element,largest_element,value;
vector<int>v;
int n;//n is the number of elements to enter
cin>>n;
for(int i = 0;i<n;i++)
{
cin>>value;
if(i==0)
{
smallest_element= value; //smallest_element=v[0];
largest_element= value; //also, largest_element = v[0]
}
if(value<smallest_element and i>0)
{
smallest_element = value;
}
if(value>largest_element and i>0)
{
largest_element = value;
}
v.push_back(value);
}
你也可通過內置功能獲得最小/最大元素
#include<algorithm>
int smallest_element = *min_element(v.begin(),v.end());
int largest_element = *max_element(v.begin(),v.end());
通過使用此功能,您可以獲得任何範圍的最小/最大元素。如,
vector<int>v {1,2,3,-1,-2,-3};
cout<<*min_element(v.begin(),v.begin()+3); //this will print 1,smallest element of first three elements
cout<<*max_element(v.begin(),v.begin()+3); //largest element of first three elements
cout<<*min_element(v.begin()+2,v.begin()+5); // -2, smallest element between third and fifth element (inclusive)
cout<<*max_element(v.begin()+2,v.begin()+5); //largest element between third and first element (inclusive)
我已經使用星號(*),前min_element()/ max_element()函數。因爲它們都返回迭代器。所有的代碼都在C++中。
看起來'雲'不是STL容器,而是'int [10]'。基本上,'cloud'沒有'.begin()'成員。可能希望得到一本基本的C++書籍,除非你只做這件事。 – 2012-03-26 15:20:31
其他一些代碼也可能有用。雲的定義在哪裏? – Tim 2012-03-26 15:26:15
雲是一個矢量 – 2012-03-26 15:44:04