vector與結構體結合的簡單應用

2021-07-12 05:01:55 字數 1363 閱讀 9892

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,分別代表每個學生的學號和成績。輸出 按照學生的成績從小到大進行排序,並將排序後的學生資訊列印出來。如果學生的成績相同,則按照學號的大小進行從小...