看書的時候第n次見到vector了,一時興起:既然這麼好用就掌握它吧。
看書看別人的部落格發現原理並不複雜。並且!居然支援任意位置插入!!一直以來無限頭疼的問題,唯有二叉查詢樹--平衡樹能解決的艱難的問題居然被stl封裝好了!
立刻把之前樹狀陣列折騰了好久的題拿出來用vector做。
五分鐘搞定!!!
一. 向量
向量是一種物件實體,能夠容納許多態別相同的元素,因此被稱為容器。vector屬於stl(標準模板庫),廣義上可以看成是陣列的增強版。
二. 基本操作
#include//標頭檔案
vectora ; //宣告乙個int型向量a
vectora(10) ; //宣告乙個初始大小為10的向量
vectora(10, 1) ; //宣告乙個初始大小為10且初始值都為1的向量
vectorb(a) ; //宣告並用向量a初始化向量b
vectorb(a.begin(), a.begin()+3) ; //將a向量中從第0個到第2個(共3個)作為向量b的初始值
a.size() //獲取向量中的元素個數
a.empty() //判斷向量是否為空
a.clear() //清空向量中的元素
a = b ; //將b向量複製到a向量中
a == b ; //a向量與b向量比較, 相等則返回1
a.insert(a.begin(), 1000); //將1000插入到向量a的起始位置前
a.insert(a.begin(), 3, 1000) ; //將1000分別插入到向量元素位置的0-2處(共3個元素)
vectora(5, 1) ;
vectorb(10) ;
b.insert(b.begin(), a.begin(), a.end()) ; //將a.begin(), a.end()之間的全部元素插入到b.begin()前
b.erase(b.begin()) ; //將起始位置的元素刪除
b.erase(b.begin(), b.begin()+3) ; //將(b.begin(), b.begin()+3)之間的元素刪除
b.swap(a) ; //a向量與b向量進行交換
不定長陣列 vector
使用需要包含標頭檔案 include vector是乙個模板類,所以需要用vectora或者vectorb這種方式宣告。vector的常用操作 int len a.size 返回vector長度 a.resize 100 把a長度變為100 a.push back 10 把10新增到尾部 a.pop...
不定長陣列 vector
vector是乙個不定長陣列模板類,所以需要用vectora或者vectorb這樣的方式來進行宣告乙個vector。vector是乙個類似於int a的整數陣列,而vector就是乙個類似於string a的字串陣列。使用vector時要加 include標頭檔案 常用的vector陣列的方法有 i...
不定長陣列 vector
1.vector 在使用它時,需要包含標頭檔案vector,include.vector 容器與陣列相比其優點在於它能夠根據需要隨時 自動調整自身的大小以便容下所要放入的元素,提供了許 多的方法來對自身進行操作.2.初始化 vectora 宣告乙個int型向量a vectora 10 宣告乙個初始大...