【摘要】
push與push_back是stl中常見的方法,都是向資料結構中新增元素。初識stl,對於新增元素的方法以產生混淆,這裡暫對兩種方法作出比較分析。此外,本文還將簡述push對應的stack與queue系列,常見方法的介紹,以及與push_back相對應的vector系列常見方法介紹。詳見下文。
list 也是使用 push_back .
【正文】
push_back 方法介紹
vector::void push_back (const value_type& val);
vector::void push_back (value_type&& val);
該函式將乙個新的元素加到vector的最後面,位置為當前最後乙個元素的下乙個元素,新的元素的值是val的拷貝(或者是移動拷貝)
vector 常見方法介紹
(1)vector< 型別 > 識別符號 ;
(2)vector< 型別 > 識別符號(最大容量) ;
(3)vector< 型別 > 識別符號(最大容量,初始所有值);
(4) int i[4] = ;
vector< 型別 > vi(i , i+2); //得到i索引值為3以後的值 ;
(5)vector< vector > //vi 定義2維的容器;記得一定要有空格,不然可能會報錯
vector< int > line // 在使用的時候一定要首先將vi個行進行初始化;
for(int i = 0 ; i < 10 ; i ++)
vector 定義二維陣列,長度可以不預先確定。
(6)c++ vector排序
vector< int > vi ;
vi.push_back(1);
vi.push_back(3);
vi.push_back(0);
sort(vi.begin() , vi.end()); /// /從小到大
reverse(vi.begin(),vi.end()); /// 從大到小
(7)順序訪問
vector < int > vi ;
for( int i = 0 ; i < 10 ; i ++)
for(int i = 0 ; i < 10 ; i ++) /// 第一種呼叫方法
vector < int >::interator it = find(vi.begin() , vi.end(),3) ;
cout << *it << endl ; ///返回容器內找到值的位置。
(9)使用陣列對c++ vector進行初始化
int i[10] = ;
///第一種
vector vi(i+1,i+3); ///從第2個元素到第3個元素
for(vector ::interator it = vi.begin() ; it != vi.end() ; it++)
(10) 結構體的 vector
struct temp
tmp;
int main()
{vector t ;
temp w1 ;
w1.str = 「hello world」 ;
w1.id = 1 ;
t.push_back(t1);
cout << w1.str << 「,」 stack::push();//在棧頂增加元素
queue::push();//將x 接到佇列的末端。
stack與queue常見方法介紹
1、stack
stack 模板類的定義在標頭檔案中。
stack 模板類需要兩個模板引數,乙個是元素型別,乙個容器型別,但只有元素型別是必要的,在不指定容器型別時,預設的容器型別為deque。
定義stack 物件的示例**如下:
stack s1;
stack s2;
stack 的基本操作有:
入棧,如例:s.push();在棧頂增加元素
出棧,如例:s.pop();注意,出棧操作只是刪除棧頂元素,並不返回該元素。
訪問棧頂,如例:s.top()
判斷棧空,如例:s.empty(),當棧空時,返回true。
訪問棧中的元素個數,如例:s.size()。
2、queue
queue 模板類的定義在標頭檔案中。
與stack 模板類很相似,queue 模板類也需要兩個模板引數,乙個是元素型別,乙個容器型別,元素型別是必要的,容器型別是可選的,預設為deque 型別。
定義queue 物件的示例**如下:
queue q1;
queue q2;
queue 的基本操作有:
入隊,如例:q.push(x); 將x 接到佇列的末端。
出隊,如例:q.pop(); 彈出佇列的第乙個元素,注意,並不會返回被彈出元素的值。
訪問隊首元素,如例:q.front(),即最早被壓入佇列的元素。
訪問隊尾元素,如例:q.back(),即最後被壓入佇列的元素。
判斷佇列空,如例:q.empty(),當佇列空時,返回true。
訪問佇列中的元素個數,如例:q.size()
STL stack和queue的用法
include include include using namespace std stack s stack int,vector stk 覆蓋基礎容器型別,使用vector實現stk s.empty 判斷stack是否為空,為空返回true,否則返回false s.size 返回stack中...
STL中的vector和queue操作的區別
主要是記錄下自己的使用stl的錯誤。vector有以下這些功能,注意pop bcak去掉的是最後乙個元素,而queue的pop去掉的是首元素,自己經常搞混了。1.push back 在陣列的最後新增乙個資料 2.pop back 去掉陣列的最後乙個資料 3.at 得到編號位置的資料 4.begin ...
c 中vector和vector的用法區別
在使用stl容器 比如map list vector等 的時候,是用放乙個物件還是放乙個物件指標,即是用vector還是vector,這裡的vector可以換成其他的容器,int可以換成其他基本型別,也可以自定義的資料結構或類。首先,要說明的是,這兩種方式,怎麼用都可以實現功能,把一組整型數放到容器...