c++裡面的vector提供了對array/list的操作功能, 如下**演示了如何建立vector並進行增加元素/查詢元素/刪除元素/列舉元素, 還演示了如何應用模板(template)來實現通用資料的vector列印.
#define _crtdbg_map_alloc
#include #include #include "stdafx.h"
#include #include #include using namespace std;
templatevoid printvector(_t pvvtsrc)
cout << endl << "vector size: " << pvvtsrc.size() << endl;
}templatevoid printvectorc(_c pvvtsrc)
cout << endl << "vector size: " << pvvtsrc.size() << endl;
}void testvectorchars()
printvectorc(lvvtchars);
}void testvector()
printvector(lvvtints);
lvvtints.insert(find(lvvtints.begin(), lvvtints.end(), 1), 2); //在1的前面插入2
printvector(lvvtints);
lvvtints.insert(find(lvvtints.begin(), lvvtints.end(), 2), 3); //在2的前面插入3
lvvtints.insert(find(lvvtints.begin(), lvvtints.end(), 2), 3); //在2的前面插入3
printvector(lvvtints);
//刪除所有3
for (vector::iterator lvnitem = lvvtints.begin(); lvnitem != lvvtints.end(); lvnitem++)
printvector(lvvtints); }
int main(int argc, char* argv)
上面**, 由於string是乙個類,所以template不通用, 只能重新用template定義乙個類相關的模板.
執行結果:
5 4 3 1
vector size: 4
5 4 1
vector size: 3
5 4 2 1
vector size: 4
5 4 3 3 2 1
vector size: 6
5 4 2 1
vector size: 4
one two three
vector size: 3
one two
vector size: 2
vector 與陣列的互相轉換:
//測試小數陣列與vector的互相轉換
void testfloatarrsvector() ;
// float arrays to vector
vectorlvvfitems (lvflitems, lvflitems + sizeof(lvflitems) / sizeof(float));
printvector(lvvfitems);
//亦可以通過下標直接訪問元素
for (size_t i = 0; i < lvvfitems.size(); i++)
//vector to float arrays
if (!lvvfitems.empty())
deletelvflnew;
cout << endl;
// 或者直接指向vector的記憶體塊,將其轉換為陣列來用.
float *lvflpt = &lvvfitems[0];
for (size_t i = 0; i < lvvfitems.size(); i++)
}}
從上述**演示了從陣列轉vector和從vector轉陣列, 在vector轉陣列用了兩種方法, 一種是先將資料做了乙份拷貝再使用, 另一種方法是可以直接用 &lvvfitems[0]和lvvfitems.size()作為陣列資料來用了.
C 標準模板庫 向量(vector)
1 可將向量 vector 想象成為乙個在程式執行時能改變長度的陣列。因為在c c 中定義了乙個陣列之後,這個陣列是固定長度的,不能隨意改變大小,向量和陣列用處相同,不同之處在於能自由改變大小。2 宣告變數v是基型別為int的向量 vectorv 3 vector代表乙個模板類,可以將t換成任意資料...
C 模板庫(STL)入門 vector向量
功能 vector翻譯是向量,其實是乙個長度會根據需要改變的陣列。標頭檔案 include vector 還要加using namespace std 定義 vector typename name 比如 vectorname 這樣我就定義了乙個int型的邊長陣列 其他型別的以及二維邊長陣列的定義就...
標準模板庫 (向量 vector)
編寫程式練習了vector 的主要函式。從中學習到了一些知識點 1.vector的內部其實還是陣列。2.at用於按照索引訪問任意位置的元素,front用於訪問頭元素,back用於訪問尾元素。3.arr.at i 和arr i 是等價的,在vector的內部過載了操作符。4.push back用於在尾...