vector的應用舉例

2021-07-05 20:07:07 字數 1906 閱讀 1507

1、問題描述:近來寫程式的時候,用到了容器,所以對這個操作進行了一些了解和操作。

2、的迭代器的相關函式。

表1 vectors的迭代器相關函式 操作

效果c.begin()

返回乙個隨機訪問迭代器,指向第乙個元素

c.end()

返回乙個隨機訪問迭代器,指向最後元素的下乙個位置

c.rbegin()

返回乙個隨機訪問迭代器,指向逆向迭代的第一元素

c.rend()

返回乙個隨機訪問迭代器,指向逆向迭代的最後元素的下乙個位置

3、vector的安插、移除相關操作。

表2 vector的安插、移除相關操作 操作

效果c.insert(pos , elem)

在pos位置上插入乙個elem 副本,並返回新元素的位置

c.insert(pos , n  , elem)

在pos位置上插入n個elem 副本。無返回值

c.insert(pos , beg , end)

在pos位置上插入區間[beg ; end]內的所有元素的副本,無回傳值

c.push_back()

在尾部新增乙個elem副本

c.pop_back()

移除最後乙個元素(但不回傳)

c.erase(pos)

移除pos位置上的元素,返回下一元素的位置

c.erase(beg , end)

移除[beg , end]區間內的所有元素,返回下一元素的位置

c.resize(num)

將元素數量改為num(如果size()變大了,多出來的新元素都需要以default建構函式構造完成)

c.resize(num , elem)

將元素數量改為num(如果size()變大了,多出來的新元素都需要以elem的副本)

c.clear()

移除所有元素,將容器清空

4、vector的應用舉例

1)刪除所有的值為val的元素

vectorsentence;

sentence.erase( remove(sentence.begin() , sentence.end() ,val) ,sentence.end());

2)如果只是要刪除「與某值相等」的第乙個元素,可以這樣
vectorsentence;

std::vector::iterator pos;

pos=find(sentence.begin() , sentence.end() ,val);

if( pos != sentence.end() )

3)vector運用例項

#include "stdafx.h"

#include #include #include #include #include //#include #include using namespace std;

int main()

執行結果如圖1所示

圖1  3)程式執行結果

5、說明,參考書中,沒有新增標頭檔案#include 。在執行中出錯。所以這一點要特別注意一下。

6、致謝王聲特同學提供的參考書《c++標準庫-自修教程與參考手冊》。

7、參考文獻

[1] nicolai m.josuttis .the c++ standard library - a tutorial and reference .pearson education north asia limited,a pearson education company.1998.

(注:翻譯:侯捷/孟巖)

棧的應用舉例

一 目的 掌握棧的表示,實現及其針對棧的各種操作進行具體的應用。二 要求 1 建立乙個順序棧,實現括號配對,判斷乙個表示式中括號配對是否合法。2 當使用者輸入乙個合法的表示式後,能夠返回正確的結果。能夠計算的運算子包括 加 減 乘 除 括號 能夠計算的數要求在實數範圍內。對於異常表示式給出錯誤提示。...

棧的應用舉例

十進位制數n和其他d進製數的轉換是計算機實現計算的基本問題,其解決方法很多,其中乙個簡單演算法基於下列原理 n n div d d n mod d 其中 div為整除運算,mod為求餘運算 例如,2007 10 3727 8,其運算過程如下 可以看到上述過程是從低位到高位產生8進製的各個數字,然後從...

指標的應用舉例

下面是乙個交換a與b之間值的乙個程式 include void swap error1 int a,int b int tmp tmp a a b b tmp printf d,d a,b 因為列印函式要盡量使用在主函式中,所以我們在主函式進行列印 int main int a 10 int b 2...