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