程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 【算法專題】工欲善其事必先利其器—— C++ STL中vector(向量/不定長數組)的常用辦法總結

【算法專題】工欲善其事必先利其器—— C++ STL中vector(向量/不定長數組)的常用辦法總結

編輯:關於C++

【算法專題】工欲善其事必先利其器—— C++ STL中vector(向量/不定長數組)的常用辦法總結。本站提示廣大學習愛好者:(【算法專題】工欲善其事必先利其器—— C++ STL中vector(向量/不定長數組)的常用辦法總結)文章只能為提供參考,不一定能成為您想要的結果。以下是【算法專題】工欲善其事必先利其器—— C++ STL中vector(向量/不定長數組)的常用辦法總結正文


 1 #include<iostream>
 2 #include<cstdio>
 3 #include<string>
 4 #include<vector>//不定長數組(向量)所需求包括的頭文件 
 5 
 6 using namespace std;
 7 
 8 const int maxn = 30;
 9 
10 int n;
11 
12 int arr[5]={1,2,3,4,5};
13 /*不定長數組的聲明辦法*/
14  
15 vector <int> pile;
16 //vector<T> v1            vector保管類型為T的對象。默許結構函數,v1為空
17 vector <int> pile_copy;
18 //vector<T> v2(v1)        v2是v1的一個正本
19 vector <int> pile2(3,5);
20 //vector<T> v3(n,i)        v3包括n個值為i的元素
21 vector <int> pile3(3);
22 //vector<T> v4(n)          v4含有值初始化的元素的n個正本 假如為整形(int) 則為0 若為字符串(string)類型 則為空
23 vector <int> pile4{1,2};
24 //初始化第一個元素為1,第二個元素為2,其他依照默許值(0)初始化
25 vector <int> pile5(arr,&arr[5]);    
26 //以區間(beg;end)做為初值的vector
27 /*
28 此外不定長數組不限於根本類型 還可以是構造體類型(構造體要定義為全局的,否則會出錯)
29 也可以是聲明不定長類型的二維數組 
30 */ 
31 vector <vector <int> > pile6;//聲明一個二維不定長數組
32   
33 /* 不定長數組的運用辦法*/
34 
35 pile.push_back(1);
36 //尾部拔出數字 1 
37 pile.pop_back();
38 //在尾部刪除一個元素
39 cout<<pile2[1]<<endl;
40 //可以用數組辦法訪問不定長數組元素
41 pile3.assign(arr,&arr[5]);
42 //吧arr[0]到arr[5]中的元素停止拷貝 
43 vector<int>::iterator it;
44 //聲明一個叫it的整形的迭代器 
45 for(it=pile2.begin();it < pile2.end(); it++)
46     cout<<*it<<endl;
47 //應用迭代器對不定長數組停止遍歷 
48 //pile2.end();指向最後一個元素的下一個地位 
49 /*關於迭代器:
50 迭代器(Iterator),提供了訪問容器中對象的辦法。
51 例如,可以運用一對迭代器指定list或vector中的一定范圍的對象。
52 迭代器就好像一個指針。現實上,C++的指針也是一種迭代器。
53 但是,迭代器也可以是那些定義了operator*()以及其他相似於指針的操作符中央法的類對象;*/
54 pile2.insert(pile2.begin()+i,a);
55 //在第i+1個元素後面拔出a;
56 pile2.eraser(pile2.begin()+2);
57 //刪除第3個元素 
58 pile2.erase(pile2.begin()+i;pile2.begin()+j);
59 //刪除i到j-1的區間(從0開端)
60 cout<<pile2.size()<<endl;
61 //獲取以後不定長數組的大小
62 pile2.clear();
63 //清空向量 
64 cout<<"pile大小能否為0:"<< (pile.empty()?"空":"不空")<<endl;
65 //判別pile能否為空
66 cout<<"pile可包容的元素最大數量:"<<pile.max_size()<<endl; 
67 //判別Pile可包容的最大數量
68 pile.resize(5); 
69 //將元素數量改成5,假如pile變大,則多的按默許走
70 pile.resize(5,9); 
71 //將元素數量改成5,假如pile變大,則多的賦值成9

拓展閱讀:

引薦博客地址: 對vector的用法及定義有較為詳細的解說 運用時可以留作參考

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved