如何使用STL實現自己的類

2021-05-21 12:16:06 字數 906 閱讀 7079

list如何排序,公升序和降序?

把資料加進list中之後,要排序就簡單了,就呼叫它的sort()函式就行了,例如:

listlst;

lst.push_back(1);

lst.push_front(2);

lst.push_back(5);

lst.sort();

這樣的話,lst裡本來是2、1、5的順序排列的,sort之後就變成了1、2、5也就是公升序排列。

那如果我們要降序排列呢?可以這樣:

lst.sort( greater() );

這樣的話,list裡面就變成了5、2、1的順序了!

list容器如何容納自定義型別?

上面的那個list是容納了int型別,如果我們要容納自定義的型別怎麼辦呢??

首先我們需要定義乙個類,比如下面的這個類:

class cstyleandcount

cstyleandcount& operator = (const cstyleandcount &other)

friend int operator<(const cstyleandcount &left,

const cstyleandcount &right)

friend int operator>(const cstyleandcount &left,

const cstyleandcount &right)

cstring m_strstylecount;

cstring m_strcount;

int m_ncount;

};我們可以看到,這個類裡過載了幾個運算子,<、>、=,這幾個運算子過載了之後,那list就可以容納我們的自定義型別了,本來 > 都不用過載,但為了能降序排列,就要做多一步了。

接下來的使用和上面第乙個問題的使用一樣了!

如何高效的使用STL

一些容器選用法則 1 如果程式要求隨機訪問元素,則應使用vector或deque容器 2 如果程式必須在容器的中間位置插入或刪除元素,則應採用list容器 3 如果程式不是在容器的中間位置,而是在容器首部或尾部插入或刪除元素,則應採用deque容器 4 如果只需要在讀取輸入時在容器的中間位置插入元素...

stl自己的總結

容器分為 序列式 vector動態陣列,deque雙向佇列,list雙向序列。關聯式容器 set,multiset,map,multimap,hash table 容器配接器 stack,queue,priority queue stl的資料結構 biset,string,valarray stri...

使用STL的vector容器類

範例程式 include include include include include using namespace std int main char b size 定義vector物件 vectorvf a,a size vectorvc b,b size sizef vf.size siz...