vector是stl中很重要的乙個容器。簡單地說,vector是陣列的一種類表示,它提供了自動記憶體管理功能,可以動態地改變vector物件的長度,並隨著元素的新增和刪除而增大和減小。它提供了對元素的隨機訪問。在尾部新增和刪除元素的時間是固定的,但在頭部或中間插入和刪除元素的時間複雜度為線性的。
在使用時需要新增標頭檔案,為方便使用通常有 using namespace std;語句。
vector的功能很多,其相關的成員函式基本可以實現所有常用功能,再次不一一舉例。除此之外,值得注意的有兩點:(1)同一般的stl容器,vector也可使用迭代器來訪問(遍歷)其中的元素,並且很方便;(2)vector是可反轉容器,可使用rbegin()和rend()來逆向遍歷容器。
ps:vector 模板類是最簡單的序列型別,除非其他型別的特點優點能夠更好地滿足程式的要求,否則應預設使用這種型別。
以下程式功能為使用vector容器存放結構體型別,並查詢其中一些屬性的最小值。
#include #include using namespace std;
struct elem
elem(long _ind, double _value, double _dvalue ) };
int main()
double min_phi,min_dphi;
vector::iterator iter = trial.begin();
for ( ; iter != trial.end(); iter++)
cout << "ind = " << (*iter)->img_ind << " phi = " << (*iter)->value << " dphi = " << (*iter)->dvalue << endl ;
//尋找最值
min_phi = trial[0]->value;
min_dphi = trial[0]->dvalue;
for(i=1; itrial[i]->value) min_phi = trial[i]->value;
if(min_dphi > trial[i]->dvalue) min_dphi = trial[i]->dvalue;
} //min_phi = *min_element(iter.begin(),iter.end()) 結構體中使用min_element似乎不可行;
cout << "min_phi = " << min_phi << endl << "min_dph = " << min_dphi;
return 0;
}
其中值得注意的是vectorxx為指標,迭代器也為指標,因此要注意*的使用。 結構體排序與sort STL 的結合
題目如下 description 自從電子競技在中國被認定為第99個正式體育專案,教主就投身其中,cs counter strike 反恐精英 是他拿手的一款遊戲,有很多職業選手為之付出。反恐精英中有各種不同的槍械,我們為了簡化問題,規定每種槍有自己的名字 殺傷力 下面要求你按照如下規定給已知的槍枝...
容器與結構體的結合使用
容器中不僅可以安放基本的資料型別,也可以放置指定的資料型別。這裡就簡單介紹下set與結構體的混合使用,以及在set中搜尋指定資料 這裡需要用set的內建find函式,以及涉及到運算子的過載 include include include using namespace std struct lov ...
qsort 與結構體相結合
題目描述 用一維陣列儲存學號和成績,然後,按成績排序輸出。輸入 輸入第一行包括乙個整數n 1 n 100 代表學生的個數。接下來的n行每行包括兩個整數p和q,分別代表每個學生的學號和成績。輸出 按照學生的成績從小到大進行排序,並將排序後的學生資訊列印出來。如果學生的成績相同,則按照學號的大小進行從小...