vector 容器,向量
一、 能存放任意型別的動態陣列,能增加和壓縮資料
注:如果表示向量長度較長(向量內部儲存很多數)容易導致洩露,效率很低
二、寫法: double distance(vector< int> & a,vector < int >&b) 其中「 & 」不能少
例項;
vectortest; 建立乙個vector,int 為陣列元素的資料型別,test 為動態陣列名
vector < int > test ; //建立乙個vector (一維陣列)
test.push_back(1);
test.push_back(2); //把1 2 壓入vector 中 test [0]是 『 1 』 test [1]是 『 2 』
vector>points; 定義乙個二維陣列
points[0].size(); //第一行的列數
1、基本操作
1、標頭檔案: #include
2、建立vector物件: vectorvec;
3、尾部插入數字: vec.push_back(a);
4、使用下標訪問元素: cout<
5、使用迭代器訪問元素 eg:
vector::iterator it;
for( it=vec.begin(); it!=vec.end(); it++ )
6、插入元素:vec.insert(vec.begin()+i,a); 在i+個元素前插入a
7、刪除元素:vec.erase(vec.begin()+2); 刪除第3個元素
vec.erase(vec.begin()+i,vec.end()+ j ); 刪除區間從[ i,j-1]; 區間從0開始
front() 訪問某乙個元素(第乙個元素) back() 訪問最後乙個元素
begin() 表示第乙個元素 end() 表示最後乙個元素
8、向量大小: vec.z=size();
9、清空: vec.clear(); (清空所有元素)
重說明:
vector中元素不僅可為 int double string 還可以為結構體 注意,結構體要定義為全域性,否則會出錯
三、演算法:逆序排序
1、使用 reverse 將元素翻轉;需用標頭檔案 #include
eg:
reverse ( vec.begin( ) , vec.end( ) ); 將元素翻轉,即 「 逆至 」排序
公升序排序 sort排序
標頭檔案:#include
sort( vec.begin( ) , vec.end( ) ); 預設公升序(從小到大)
降序排序
bool comp (const int &a,const int & b )
呼叫降序: sort (vec.begin(), vec.end(),comp)
vector 中的push_back的用法和作用
push_back 簡單作用是在字串結尾插入乙個字元
push_back 它在c++中的vector標頭檔案裡面
在vector類中它的作用是在此類尾部加乙個資料
string中也有它,作用是字串後插如乙個字元
push_back 函式原型
void push_back( value_type_ch );
void push_back (value_type_ch);
引數_ch 意思是「 這個字元將被新增到字串末尾
eg:
void push_back (const_ty&_x)
資料結構 2
2016 02 06 17 38 指標和陣列 指標和一維陣列 陣列名一維陣列名是個指標常量,它存放的是一維陣列第乙個元素的位址,它的值不能被改變 一維陣列名指向的是陣列的第乙個元素 下標和指標的關係 a i a i 假設指標變數的名字為p 則p i的值是p i p所指向的變數所佔的位元組數 指標變數...
資料結構2
定義 只允許在一端插入和刪除的線性表 允許插入和刪除的一端稱為棧頂 top 另一端稱為棧底 bottom 特點後進先出 lifo 棧的棧的主要操作 棧的主要操作主要操作 棧的主要操作 adtstack 棧的陣列表示 順序棧 define stacksize 100typedef char stack...
資料結構 2
class queue object 佇列 雙端佇列 def init self 私有化,封裝 self.queue def enqueue self item 從尾部往佇列中新增乙個元素 def enqueue start self item 從頭部新增元素 雙 self.queue.insert...