STL內容簡介(詳細內容稍後再補)

2021-05-26 08:04:01 字數 3601 閱讀 8004

stl:標準c++庫

(1)字串類std::string的用法

包含標頭檔案:

#include

using namespace std;

(2)向量類模板std::vector成員函式

包含標頭檔案:

#include

using namespace std;

使用:1>初始化

std::vector name;

std::vector name(size);

std::vector name(size,value);

std::vector name(myvector);

std::vector name(first,last);

2>使用

assign(first,last) 用迭代器first,last所指定的元素取代向量元素

assign(num,val) 用val的num份副本取代向量元素

at(n) 等價於運算子,返回向量中位置n的元素

front() 返回向量中第乙個元素的引用

back() 返回向量中最後乙個元素的引用

begin() 返回向量中第乙個元素的迭代器

end() 返回向量中最後乙個元素的迭代器

max_size() 返回向量的最大容量(向量所能容納的最多元素個數)

capacity() 返回向量當前所能容納的最多元素個數

clear() 刪除向量中所有元素

empty() 如果向量為空,返回真

erase(start,end) 刪除迭代器start end所指定範圍內的元素

erase(i) 刪除迭代器i所指向的元素

insert(i,x) 把x插入到迭代器i所指定的位置

insert(i,n,x) 把x的n份副本插入到迭代器i所指定的位置

insert(i,start,end) 把迭代器start和end所指定的範圍內的值插入到迭代器i所指定的位置

push_back(x) 把x插入到向量的尾部

pop_back() 刪除向量中最後乙個元素

rbegin() 返回乙個反向迭代器,該迭代器指向的元素越過了向量中的最後乙個元素

rend() 返回乙個反向迭代器,該迭代器指向向量中第乙個元素

reverse() 反轉元素順序

resize(n,x) 把向量的大小改為n,新元素的初值賦為x

size() 返回向量的大小

swap(vectorref) 交換2個向量的內容

(3)雙端佇列類模板std::deque成員函式:

包含標頭檔案:

#include

std::deque name;

使用:std::deque name(size);

std::deque name(size,value);

std::deque name(mydeque);

std::deque name(first,last);

其成員函式大部分和std::vector相同

ps:push_front(x)把x放到雙向佇列的頭部

pop_front() 把雙向佇列的第乙個元素刪除

(4)鍊錶類模板std::list成員函式:

標頭檔案:

#include

using namespace std;

使用:std::list name;

std::list name(size);

std::list name(size,value);

std::list name(mylist);

std::list name(first,last);

其成員函式大部分和std::vector相同

ps:push_front(x)把x放到鍊錶頭部

pop_front() 把鍊錶第乙個元素刪除

merge(listref) 把listref所引用的鍊錶中的所有元素插入到鍊錶中

remove(val) 從鍊錶中刪除所有值為val的元素

remove_if(pred) 刪除鍊錶中謂詞pred為真的元素

(謂詞即為元素儲存和檢索的描述,如std::less,std::greater那麼就按降序/公升序排列,你也可以定義自己的謂詞)

sort() 根據預設的謂詞對鍊錶排序

sort(pred) 根據給定的謂詞對鍊錶排序

unique() 刪除所有重複的元素,使煉表中沒有重複元素

unique(pred) 根據謂詞pred刪除所有重複的元素,使煉表中沒有重複元素

注意:vector和deque支援隨機訪問,而list不支援隨機訪問,因此不支援訪問!

(5)容器介面卡堆疊類std::stack成員函式

標頭檔案:

#include

using namespace std;

使用:stack實現先進後出的操作

std::stack name;

type為堆疊操作的資料型別

container為實現堆疊所用的容器型別,可以為std::vector,std::deque,std::list

例如std::stack intstack;

管理成員函式只有:empty(),size(),top(),push(),pop()

(6)容器介面卡佇列類std::queue成員函式:

標頭檔案:

#include

using namespace std;

使用:queue實現先進先出的操作

std::queue name;

type為佇列操作的資料型別

container為實現佇列所用的容器型別,可以為std::vector,std::deque,std::list

管理成員函式只有:empty(),size(),front(),back(),push(),pop()

(7)關聯式容器:

集合類std::set

多重集合類std::multiset

對映類std::map

多重對映類std::multimap

位集合std::bitset

(8)通用演算法(對以上stl均適用)

標頭檔案:

#include

using namespace std;

功能:1.非修正序列演算法:

2.修正序列演算法:

3.排序演算法:

4.數值演算法:

(9)迭代器(類似指標的功能,對容器的內容進行訪問)

例如:std::vector intvector;

std::vector::iterator first=intvector.begin();

//begin()得到指向vector開頭的iterator,*first得到開頭乙個元素的值

std::vector::iterator last=intvector.end();

//end()得到指向vector結尾的iterator,*last得到最後乙個元素的值

Linux學習內容簡介

2.linux系統簡介 第二章 linux目錄結構介紹 3.絕對路徑和相對路徑 4.基礎命令介紹 5.家目錄介紹 第三章 linux檔案型別與許可權 2.linux檔案許可權 第四章 linux常用命令 2.檔案編輯命令vi 3.檔案檢視命令 4.檔案壓縮與解壓命令 5.程序管理命令 6.使用者管理...

收費系統 內容簡介

需求分析 啟動介面 資料庫配置介面 使用者登入介面 主介面 業主管理 點選 增加 拼音碼,是根據 業主姓名 自動匹配的 依據如下檔案 雙擊列表,進行業主的 修改 對 業主 資訊匯出為excel 收費列印 窗體 點選 姓名 旁邊的按鈕,開啟 業務選擇框 點選兩個固定 專案 中旁邊的按鈕進行 專案 的選...

本書內容簡介

本書內容簡介 第一章,簡要論述了電腦科學和應用程式的演化過程,讓讀者了解機器學習如此盛行的背景 也就是說,數位化技術是如何從數字計算大型機發展到個人電腦台式電腦,後來到可上網 可移動的智慧型化裝置。第二章,介紹了機器學習的基礎知識,通過一些簡單的應用程式,我們詳述了這些基礎知識是如何模型擬合和統計學...