C 容器vector 理解

2021-06-26 17:13:13 字數 1601 閱讀 1898

通過設定一些模版類,stl容器對最常用的資料結構提供了支援,這些模板的引數允許我們指定容器中元素的資料型別,可以將我們許多重複而乏味的工作簡化。

與string 類一樣vector 類是隨標準c++引入的標準庫的一部,為了使用vector 我們必須包含相關的標頭檔案。

向量

(vector) 

連續儲存的元素

使用vector 有兩種不同的形式即所謂的陣列習慣和stl習慣.

陣列習慣:

vector vec(10);

void ******_example()

void print_vector( vectorivec )

// 把ia 的6 個元素拷貝到ivec 中

vector< int > ivec( ia, ia+6 );

第二個指標總是指向要被拷貝的末元素的下一位置標記出來的元素範圍也可以是陣列的乙個子集例。

stl 習慣:

我們不是定義乙個已知大小的vector 而是定義乙個空vector

vector< string > text;

我們向vector 中插入元素而不再是索引元素以及向元素賦值例如push_back()操作就是在vector 的後面插入乙個元素下面的 while 迴圈從標準輸入讀入乙個字串序列

並每次將乙個字串插入到vector 中

string word;

while ( cin >> word )

雖然我們仍可以用下標操作符來迭代訪問元素

cout << "words read are: \n";

for ( int ix = 0; ix < text.size(); ++ix )

cout << text[ ix ] << ' ';

更典型的做法是使用vector 操作集中的begin()和end()所返回的迭代器iterator對

cout << "words read are: \n";

for ( vector::iterator it = text.begin();

it != text.end(); ++it )

cout << *it << ' ';

cout << endl

iterator 是標準庫中的類它具有指標的功能

*it;

錯誤用法:

vector< int > ivec; //定義了乙個空vector

再寫這樣的語句

ivec[ 0 ] = 1024;

就是錯誤的。因為ivec 還沒有第乙個元素我們只能索引vector 中已經存在的元素.

類似地當我們用乙個給定的大小定義乙個vector 時例如

vectoria( 10 );

任何乙個插入操作都將增加vector 的大小而不是覆蓋掉某個現有的元素,例如:ia.push_back('a') ia將包含11個元素。

c 中的vector容器

在c 中,vector是乙個十分有用的容器,下面對這個容器做一下總結。1 基本操作 1 標頭檔案 include.2 建立vector物件,vectorvec 3 尾部插入數字 vec.push back a 4 使用下標訪問元素,cout 5 使用迭代器訪問元素.vector iterator i...

C 容器vector 語法練習

程式設計不是什麼技術活,就是個手工活,常常練習,否則手很生.前面寫個一次,很久不用就忘記了.cpp view plain copy c prime 習題3.17 p31 熟悉下容器操練語法 include include using namespace std void main if ivec.s...

c 常用容器vector總結

vector類稱作向量類,它實現了動態陣列,用於元素數量變化的物件陣列。像陣列一樣,vector類也用從0開始的下標表示元素的位置 但和陣列不同的是,當vector物件建立後,陣列的元素個數會隨著vector物件元素個數的增大和縮小而自動變化。1.建構函式 vector 建立乙個空vector ve...