應用場景:
在記憶體中維持乙個有序的vector:
1//23 #include 4 #include 5 #include 67//
先自定義乙個結構體
8struct
test ;
13bool sortbym1( const test* v1, const test* v2)//
注意:本函式的引數的型別一定要與vector中元素的型別一致
1418
void printvector( std::vector&vec)
1930}31
32int main(int argc, char*ar**)
3343
44//
排序之前
45 std::cout<<"
before sort:
"<46printvector(vectest);
4748 std::cout<<"
對向量中的所有元素按member1進行公升序排列:
"<49std::sort(vectest.begin(),vectest.end(), sortbym1);
50printvector(vectest);
5152
//std::cout<<"對向量中的第2個到第5個元素按member1進行公升序排列:"<53
//std::sort(vectest.begin()+1,vectest.begin()+5,sortbym1);
為第6個位置
54//
printvector(vectest);
5556
for(std::vector::iterator it =vectest.begin();
57 it != vectest.end(); ++it)
6061
return0;
62}6364 root@u18:~/cp/test# g++ vector_sort.cpp -g -wall
65 root@u18:~/cp/test# ./a.out
66before sort:670
sh68
1shsh692
shshsh703
shshshsh714
shshshshsh725
shshshshshsh736
shshshshshshsh747
shshshshshshshsh758
shshshshshshshshsh769
shshshshshshshshshsh
77對向量中的所有元素按member1進行公升序排列:789
shshshshshshshshshsh798
shshshshshshshshsh807
shshshshshshshsh816
shshshshshshsh825
shshshshshsh834
shshshshsh843
shshshsh852
shshsh861
shsh
870 sh
STL之vector的使用
本文 vector是連續記憶體容器,換句話說,標準要求所有標準庫實現的時候,vector中的元素的記憶體必須是連續的。所以對於插入和刪除的時間複雜度是很高的,因為刪除或者插入的時候,需要元素的移動,即元素複製拷貝。vector的內部實現一般需要用到placement new 所以效率很高,因為很多的...
STL之vector使用詳解
好久不用stl了,忘的差不多了,總結一下vector的使用方式,就不對每個方法做出詳細解釋了,只給出了如何用 void testvector 構造乙個元素值全為2大小為10的vector vectorv1 10,2 用指標構造 vectorv2 a,a 10 用vector iterator構造 v...
教你使用STL容器之vector
c 語言本身提供了乙個序列式容器array,stl另外再提供vector list deque stack queue priority queue等序列式容器。vector的資料安排以及操作方式,與array是很相似的,唯一的不同點在於空間的運用的靈活性,array是靜態的,一旦配置了就不能再改變...