STL順序容器簡單應用

2021-08-18 06:44:37 字數 4792 閱讀 5254

#include #include#includeusing namespace std;

void main01()

//演算法和迭代器能無縫連線

int num1 = count(v1.begin(), v1.end(), 3);

cout << num1 << endl;

}//容器裝元素

class teacher

;void main02()

}//容器裝指標

void main03()

}void main()

#define _scl_secure_no_warnings

#include#include#includeusing namespace std;

void main21()

void main22()

} catch (...)

for (string::iterator it = s1.begin(); it != s1.end(); it++)

try }

catch (...)

}//字元指標的string的轉換

void main23()

; s1.copy(buf1, 3,0);//只給你copy3個字元,不會變成c風格的字串。從0的位置開始拷貝

cout << buf1 << endl;

}//字串的連線

void main24()

//字串的替換和查詢

void main25()

int offindex2 = s1.find("bmw", 0);

while (offindex2 != string::npos)

cout << s1 << endl;

}//刪除字元

void main26()

cout << s1 << endl;

s1.erase(s1.begin(), s1.end());//全部刪除

cout << s1 << s1.length() << endl;

s1.insert(0, "aaa");//在頭部插入aaa

s1.insert(s1.length(), "ccc");//在尾部插入ccc

cout << s1 << endl;

}//轉換大小寫

void main27()

void main()

vector

#include#includeusing namespace std;

void main31()

}//vector初始化

void main32()

void printv(vectorv)

//vector的遍歷

void main33()

//for (int i = 0; i < 10; i++)

// printv(v1);

}void main34()

//迭代器

// 1 3 5

//begin() end()

//當it==v1.end()的時候 說明這個容器已經遍歷完畢

//迭代器的種類

//typedef typename _mybase::iterator iterator;

//typedef typename _mybase::const_iterator const_iterator;//唯讀迭代器

////typedef _std reverse_iteratorreverse_iterator;//反向迭代器

//typedef _std reverse_iteratorconst_reverse_iterator;

void main35()

for (int i = 0; i < v1.size(); i++)

//vector的逆向遍歷

for (vector::reverse_iterator rit = v1.rbegin(); rit != v1.rend(); rit++) }

//vector的刪除

void main36()

//區間刪除

v1.erase(v1.begin(), v1.begin() + 3);

printv(v1);

//指定位置刪除

v1.erase(v1.begin() + 1);

cout << endl;

printv(v1);

//指定值刪除

v1[0] = 100;

v1[5] = 100;

cout << endl;

printv(v1);

for (vector::iterator it = v1.begin(); it != v1.end();)

else

}cout << endl;

printv(v1);

}void main()

deque雙向容器

#include#include#includeusing namespace std;

void printd(dequed)

}void main41()

else

cout << "-33不存在!" << endl;

}void main()

stack

#include#includeusing namespace std;

//先進後出

void main51()

cout << "棧的大小為:" << s.size() << endl;

//出棧

while (!s.empty()) }

class teacher

};void main52()

}void main53()

}void main()

queue

#include#includeusing namespace std;

//queue先進先出

void main61()

}class teacher

};void main62()

}void main63()

}void main()

list

#include#includeusing namespace std;

void main71()

cout << "插入之後的大小" << l.size() << endl;

list::iterator it = l.begin();

while (it != l.end())

cout << endl;

//list不能隨機訪問

it = l.begin();

it++;

it++;

it++;

//it = it + 5;//不支援隨機訪問容器

l.insert(it, 100);

for (list::iterator it = l.begin(); it != l.end(); it++) }

//結論:鍊錶的節點index序號是從0號位置開始

// 在3號位置插入元素,讓原來的3號位置程式設計4號位置,4號位置變為5號位置

void main72()

cout << "插入之後的大小" << l.size() << endl;

list::iterator it1 = l.begin();

list::iterator it2 = l.begin();

it2++;

it2++;

it2++;

for (list::iterator it = l.begin(); it != l.end(); it++)

cout << endl;

l.erase(it1, it2);//左閉右開

for (list::iterator it = l.begin(); it != l.end(); it++)

l.insert(l.begin(), 100);

l.insert(l.begin(), 100);

l.insert(l.begin(), 100);

cout << endl;

for (list::iterator it = l.begin(); it != l.end(); it++)

l.remove(100);

cout << endl;

for (list::iterator it = l.begin(); it != l.end(); it++) }

void main()

priority_queue

#include#include#includeusing namespace std;

void main81()

p3.push(11);

p3.push(55);

p3.push(22);

p3.push(33);

cout << "p3的隊首元素為:" << p3.top() << endl;

cout << "p3的大小為:" << p3.size() << endl;

//出隊

while (p3.size() > 0) }

void main()

stl容器之順序容器

stl容器分為順序容器和關聯容器 其中順序容器最常用的由vector,list,queue 1.vector vector 向量容器,可以看作變長陣列,長度可根據需要自行變化。使用的標頭檔案 include 定義方式 vector陣列名 vectorar 訪問容器內資料的方式和普通陣列相同,可以用a...

STL學習 順序容器

我以 vector 為例,總結一下 stl順序容器的基本使用。vector 是順序容器,它在很多方面類似於我們通常使用的陣列。但是它比陣列具有很多很好的特性。它使用安全,具有陣列所不具備的自增長的特性,使得 vector 在現代軟體設計中佔據重要地位。本講分五個部分,分別是初始化 迭代器 容器訪問 ...

STL順序容器 vector

vector是乙個線性順序結構。相當於陣列,但其大小可以不預先指定,並且自動擴 展。它可以像陣列一樣被操作,由於它的特性我們完全可以將vector 看作動態數 組。在建立乙個vector 後,它會自動在記憶體中分配一塊連續的記憶體空間進行資料 儲存,初始的空間大小可以預先指定也可以由vector 預...