資料結構2

2022-04-28 23:45:26 字數 2685 閱讀 1369

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...