vector屬於順序容器,所謂順序容器,就是元素的順序與元素的值無關,與元素加入容器的位置相對應。
對於vector可以將其理解為可變大小陣列,支援快速隨機訪問,在尾部之外的位置插入刪除可能會比較慢。了解完概念接下來就開始學習它的用法
假設以下**前面都包含vector標頭檔案,幷包含using namespace std;
vector
vec;
此種定義下vec容器為空,其中尖括號中是容器中儲存的型別
vector
vec(10,5);
此種定義下vec中儲存了10個5
(3)
int a[5];
vector
vec(begin(a),end(a));
此種定義下vec儲存了陣列a中的所有元素
vector的定義方法有很多,這裡就只列一些常見的
(1)通過迭代器訪問
vector
vec;
vector
::iterator it;
for(it = vec.begin();it != vec.end();it++)
(2)通過下標訪問
vector
vec(3,5);
for(int i=0;i<3;i++)
cout
0;}
(2)在任意位置插入資料
//在第i+1個資料前插入a
vec.insert(vec.begin()+i,a);
例項如下
#include
#include
using
namespace
std;
int main(void)
cout
0;}
(3)刪除元素
刪除第i+1個元素
vec.erase(vec.begin()+i);
例項如下
#include
#include
using
namespace
std;
int main(int argc,char **argv)
cout
0;}
(4)vector的大小
//返回vector中已有的元素個數
vec.size();
//返回vector中可儲存的最大元素個數
vec.max_size();
//判斷vector是否為空
vec.empty()
例項如下
#include
#include
using
namespace
std;
int main(int argc,char **argv)
由於向vector中新增元素或刪除元素,可能會使迭代器失效,所以必須保證每次改變容器的操作之後都能正確的重新定位迭代器
當我們向vector中新增新元素時,若此時系統給vector的記憶體已被佔完,則系統或為vector重新分分配一塊記憶體該記憶體會比他新的記憶體需求更大,這樣就可以保證當再有新的元素新增進來時,就不會總是要重新分配新的記憶體了。
c 標準庫型別 vector
一 標準庫型別vector表示物件的集合,物件型別相同,需要 include using namespace std or using std vector 二 定義和初始化vector物件 vectorv1 vectorv2 v1 vectorv2 v1 vectorv3 n,val n個val元...
C 標準庫型別 vector
vector表示物件的集合,其中所有的物件的型別均相同。如果需要使用vector,需要 include using std vector vector name 其中t表示物件的型別,除了基本內建型別外,也可以是string,甚至是vector型別vectorv1 預設初始化 vectorv2 v1...
C 標準庫 vector型別
vector是乙個類似於動態陣列的型別,對於vector的初始化,如下 vectorv1 儲存int資料型別的乙個vector,並且是乙個空容器 vectorv2 vectorv3 5 表示有5個0 vectorv4 5,3 表示有5個3 vectorv5 5,asia 表示有5個字串asia ve...