close
參考網址:http://edisonx.pixnet.net/blog/post/34345257-vector-%E5%BF%83%E5%BE%97%E6%95%B4%E7%90%86
#include <vector>
//using namespace std;
// 若前面沒using namespace std;時,後面宣告vector時皆需要加std::
// 在後方加入元素:v.push_back(i);
// 刪除最後元素:v.pop_back();
// 檢查是否為空:v.empty();
// 直接將v清空 :v.clear();
// 取得目前vector大小:v.size();
// 清除指定元素:v.erase(v.begin()+1); v.erase(v.end()-1);
// v.begin() 表示為第0個元素,等同於 v[0]
// v.end() 表示為最後一個元素,等同於 v[v.size()-1]
// 普通vector用法
std::vector<int> v1; // 宣告每個元素型態為int的vector
for ( int i = 0; i < 100; i++) // 在後方新增元素100次
v1.push_back(i);
// structure在vector內的用法
typedef struct Arr{ // 定義一個structure
int id;
int num;
} Arr;
std::vector<Arr> arr1; // 宣告每個元素型態為Arr(structure)的vector
Arr tmp;
for(i=0; i<100; i++) {
// 需要先把值填滿一個暫存用的structure
tmp.id = i+1;
tmp.num = i-1;
// 再把暫存用的structure加入到vector裡面
arr1.push_back(tmp);
}
// ---iterator用法---
std::vector<int>::iterator it = v1.begin();
// iterator表示一個指向vector(v1)某一元素的指標
// 但非真正意義上的指標,因為可以進行加減
// 見以下範例
for ( ; it != v1.end(); it++ )
int k = it; // 這時候的it代表v[0~?],同時也因為vector型態是int,所以此it也等同於int
// structure + iterator 的用法
std::vector<Arr>::iterator it = arr1.begin();
for(; it != arr.end(); it++) {
it->id++; // 這時候的it代表一個structure的指標
it->num--;
}
文章標籤
全站熱搜