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 ...