STL入門級整理(string vector)

2021-09-02 14:16:48 字數 1604 閱讀 3672

我們在c語言中是如何定義乙個字串的呢?

最簡單的就是char s[100]這樣。然後讀入和輸出就是:

scanf("%s",s);

printf("%s",s);

現在,c++提供了乙個string型別的模板,它的用處從英文的字面意思就可以了解,就是字串型別。這個模板存在於標頭檔案

#include

我們如何去用它呢?可以將string看成是int、char,來宣告乙個變數。

#include#includeusing namespace std;

int main()

這樣我們就宣告了乙個名叫s的string型別的變數。再來了解一下string型別的讀入和輸出,要先知道c++帶有的新的讀入、輸出方式,cin和cout,從字面上也很好理解(乙個in乙個out)。

#include#includeusing namespace std;

int main()

這樣就宣告了乙個用來存放int型別元素的動態陣列,他的名字是vec。同理的尖括號內可以被替換為任意型別,比如:char、double甚至是string。看圖:

#include#includeusing namespace std;

int main()

上面就是4中不同型別的維克托啦。

接著講怎麼往內部插入元素,vector最簡單的插入方式就是push_back(x)。再看例項吧,口胡能力捕星。

#include#includeusing namespace std;

int main()

上面的**就是在vec中先插入了乙個數字2,再插入了乙個數字421,甚至你可以int乙個x在我們讀入之後把它也壓入vec中。

現在裡面就存好了3個數啦。那麼我們肯定是需要訪問這裡面有些啥的,vector提供了乙個.size()來詢問陣列內元素的總數,那麼利用這一點,我們就可以像訪問乙個正常的陣列一樣來訪問維克托啦。

for(int i=0;i是不是和陣列幾乎一模一樣呢。

維克托還有.pop_back()用來彈出動態陣列最後的元素,這個其實在函式的命名上來講是很形象了。

#include#includeusing namespace std;

int main()

{ vectorvec;

vec.push_back(2);

vec.push_back(421);

vec.pop_back();

for(int i=0;i上面的**實現後就發現數字421被彈出,只會輸出乙個2啦。

維克托應該還有.insert()來在中間某個位置插入元素,這個也可以了解一下,但是感覺用的很少(可能是我題目寫的太少)。還有一些奇奇怪怪的刪除操作.erase()刪除一段,用的也比較少叭(可能是我題目寫的太少*2)。還推薦了解一下.back()  .reserve() 。哎呀都懶得拉,因為感覺vector這個容器沒這麼多花裡胡哨的(其實是不會)。

STL入門級整理(map set)

在高中裡我們都學過函式的對映,大概都慢慢還給老師了。map大概講的就是對映關係。它所在的庫為 include,利用他能快速hash我們的資料。啊我是這麼理解的啦 在之前我們使用陣列,比如a 12 1 這其實就是一種對映關係,先不管位址不位址的問題,我們是不是可以理解為在12的位置對應的是1。a 15...

入門級演算法

今天我想記錄的是一些關於入門級別的演算法。將乙個字串s對映為乙個整數,使得該整數可以唯一的代表字串s。先假設字串均由大寫字母a z構成,不妨設a z為0 25,即將26個大寫字母對應到了二十六進製制中。按照將二十六進製制轉換為十進位制的思路,即可實現將字串對映為整數的需求。題目 給出n個字串 恰好由...

PKI入門級介紹

隨著電子商務的迅速發展,資訊保安已成為焦點問題之一,尤其是網上支付和網路銀行對資訊保安的要求顯得更為突出。為了能在網際網路上開展安全的電子商務活動,公開金鑰基礎設施 pki,public key infrastructure 逐步在國內外得到廣泛應用。我們是否真的需要 pki pki 究竟有什麼用?...