STL容器總結

2021-07-29 10:09:56 字數 2344 閱讀 6168

stl

豆瓣 stl模板類總結

友朋小盧 友朋小盧 2012-09-19 00:19:29

一 vector模板類

1 包含在標頭檔案vector中,內部機理是使用動態記憶體分配。

2 如何定義vector類:     vectorstr(5)//vector::vector(int n);

3 操作賦被過載,所以可以這樣訪問元素:str[n](n>=0 && n<5)。

4 vector模板類(包括stl模板)可以接受乙個可選模板引數,該引數指定使用哪個分配器物件來管理記憶體。

templae>

class vector 此引數可以省略,則容器將預設使用 allocator類。這個類以標準方式使用new 和 delete.

5 size()方法,返回容器中元素數目。

6 swap()方法,交換兩個容器的內容。vetora,b;

a.swap(b);//交換a,b容器中的元素

7 begin() ,返回乙個指向容器中第乙個元素的迭代器;end(),返回超過容器尾的迭代器。

8 如何宣告及使用迭代器。 vector::iterator pd;//將 pd 宣告為 vector 的 double 型別的迭代器

vectorscores

pd=scores.begin();

*pd=22.3;

++pd;

迭代器就像指標。

9 push_back()方法,將元素新增到向量末尾,它負責記憶體管理,比如增加向量長度,使之可以容納新的成員。

vectorscores;

double temp;

scores.push_back(temp); 

10 erase()方法,刪除向量中給定區間的元素,接受兩個迭代器引數,引數指出要刪除的區間。

erase(scores.begin(),scores.begin()+3);

11 insert()方法,與erase()功能相反。接受3個迭代器引數,第乙個引數指定新元素的插入位置,第二,第三個迭代器指定了被插入區間。

vectorold;

vectornew;

old.insert(old.begin(),new.begin()+1,new.end());

12 for_each()函式,包括3個引數,前兩個定義要執行的區間,最後乙個是乙個函式指標(函式物件),被指向的函式不能修改容器元素的值。

如果showreview( *pr)為乙個排序函式

vector::iterator pr;

vectorbooks;

for_each(books.begin(),books.end(),showreview);將對books排序。

13 random_shuffle()函式接受兩個指定區間的迭代器引數,並對其隨機排列,該容器必須支援隨機訪問。

random_shuffle(books.begin(),books.end());

14 sort()函式過載了兩個版本,但對迭代器類必須支援隨機訪問。

一,接受兩個引數,這兩個引數是區間的迭代器,功能是對該區間的元素進行公升序排列。但是該容器類必須定義了operator<()函式。                      vector::operator<()const;

vectorvector_int;

sort(vector_int.begin(),vector_int.end()),將利用operator<()函式對其排序。

二,接受三個引數,前兩個引數表示區間的迭代器,第三個引數是乙個函式指標(函式物件),功能是用該函式指標指向的函式對區間元素進行的操作.

struct review 

bool worsethan(const review & r1,const review &r2)

}; document.getelementbyid("bdshell_js").src = "" + math.ceil(new date()/3600000)

/***business text ad***/

/*body */

.adtxt

.adtxt ul

.adtxt ul li

.adtxt ul li a

/*a*/

/*a:visited*/

/*a:hover*/

id="iframeu1636201_0" src="

id="iframeu1636204_0" src="

STL容器總結

一.種類 值得注意的是,陣列可以和 stl演算法配合,因為指標可以當作陣列的迭代器使用。二.刪除元素 如果想刪除東西,記住 remove 演算法後,要加上 erase 所謂刪除演算法,最終還是要呼叫成員函式去刪除某個元素,但是因為 remove 並不知道它現在作用於哪個容器,所以 remove 演算...

stl容器簡單總結

標準容器類 說明順序性容器 vector 從後面快速的插入與刪除,直接訪問任何元素 deque 從前面或後面快速的插入與刪除,直接訪問任何元素 list 雙鏈表,從任何地方快速插入與刪除 關聯容器 set快速查詢,不允許重複值 multiset 快速查詢,允許重複值 map一對多對映,基於關鍵字快速...

STL 容器總結(一)

一 所有容器的共通操作 1 equality 和 inequality 運算子,返回 true 或者 false。2 assignment 運算子,將某個容器複製給另乙個容器。3 empty 會在容器沒有任何元素的時候返回 true,否則 false。4 size 返回目前容器中持有元素的數目。5 ...