總結想再系統學習一下c++,搭建這個筆記架構,長期更新(btw想每天更新一下);
如果有錯誤地方,煩請多多指教。
在學習過程中,也希望能養成良好的**習慣,主要就是按照華為**風格來碼**。(良好的**風格很重要,我們都要逐漸養成)。
stl (standard template library,標準模版庫)是惠普實驗室開發的一系列軟體的統稱,現在主要出現再c++中。
從廣義上講,stl可以分為三大類:演算法algorithm 、容器container和迭代器iterator。容器和演算法可以通過迭代器無縫連線。
使用stl的好處
1.stl是c++的一部分,無需安裝其他的軟體,它被重建於編譯器之內。
2.stl實現了資料結構於演算法的分離,使其變得更加通用。
3.stl具有高可重用性。
4.stl是c++程式設計師一項不可或缺的基本技能。
#include
#include
using namespace std;
intmain
(int argc,
const
char
* ar**)
cout/演算法實現了與容器的分離
cout<<
"count number 3:"
<<
count
(v1.
begin()
,v1.
end(),
3)
}
1.占用連續的記憶體空間,允許隨機訪問,既可以像普通陣列那樣用被訪問元素的下標來訪問,也可以使用成員函式at()來訪問。
vector();
建立乙個沒有任何元素的空向量
vector(vector&_right);
建立乙個向量,並用right初始化該向量
vector(size_type count);
建立乙個大小為count的向量––
vector(size_typecount,const type &val );
建立乙個大小為count的向量,該向量所有的元素都初始化為val
測試一下上面建構函式的列表
//
// main.cpp
// stl
//// created by ml123 on 2021/2/15.
//#include
#include
using namespace std;
intmain()
cout/建立乙個長度為5,初始值為2的int型別的向量
vector<
int>v2(
5,2)
; cout<<
"v2= "
;for
(v2_it = v2.
begin()
; v2_it != v2.
end(
); v2_it++
) cout/建立乙個int型別的向量,並用v2初始化之
vector<
int>
v3(v2)
; cout<<
"v3= "
;for
(v3_it = v3.
begin()
; v3_it != v3.
end(
); v3_it++
) cout/建立乙個int型別的向量,並用v2部分元素初始化他
vector<
int>
v4(v2.
begin()
+1,v2.
begin()
+3);
cout<<
"v4= "
;for
(v4_it = v4.
begin()
; v4_it != v4.
end(
); v4_it++
) cout
}
reference front();const_reference front() const;
返回第乙個元素
reference back();const_reference back() const
返回最後乙個元素
referennce operator(size_type pos);
返回由pos指定的位置上的元素
clear()
從容器中刪除所有元素
reference at(size_type pos);
返回由pos指定的位置上的元素
erase(postion)
刪除指定位置上的乙個元素
erase(beg,end)
刪除beg到end -1上的元素
insert(postion ,elem)
將elem元素插入到postion位置
insert(postion,beg,end)
將從beg到end-1之間所有元素的靠別插入到postion指定的位置上
pop_back()
刪除最後乙個元素
#include
#include
using namespace std;
intmain()
cout
for(i =
0; i size()
;++i)
cout/還有其他在此不與贅述
return0;
}
**如下(示例):
sizeof_type capacity()const;
返回當前容納元素的個數
bool empty() const ;
若容器為空,則返回true
size()const
返回容器當前包含元素的個數––
size_of max_size() const
返回可以輸入到容器的元素的最大數目
#include
#include
using namespace std;
intmain()
vector<
int>v1 =;或者
vector v1 =
;
//引用傳遞並進行運算操作
for(
auto
&i:v1)
i*=i;
//遍歷元素驚醒平方運算並返回結果
//例如進行值傳遞,並操作
for(
auto i:v1)
cout<
C 學習記錄之STL函式
1 排序函式 sort 對給定區間所有元素進行排序 stable sort 對給定區間所有元素進行穩定排序 partial sort 對給定區間所有元素部分排序 partial sort copy 對給定區間複製並排序 nth element 找出給定區間的某個位置對應的元素 is sorted 判...
C 學習之STL初理解
一直以來自認為作為程式設計師不需要去刻意寫作記錄東西,因為只要會程式設計寫 即使記不住的東西時間常了之後自然就能耳熟能詳。直到最近找工作需要補的東西太多,回憶起之前學的東西時感覺很吃力恨當時沒有吃透理解的同時也恨當時沒有記筆記和總結,最後思考反省還是自己太懶,懶得去記錄一些自以為以後不會忘記的東西,...
C 學習筆記之 STL 佇列
一.引言 在演算法以及資料結構的實現中,很多地方我們都需要佇列 遵循fifo,先進先出原則 為了使用佇列,我們可以自己用陣列來實現佇列,但自己寫太麻煩不說,並且還很容易出錯。好在c 的stl 標準模板庫 為我們實現了乙個強大的佇列,它包含在標頭檔案中。二.queue a 建構函式 下面用例子來展示q...