C/C++ 標準模版庫STL(持續更新版)

標準模版庫STL

<algorithm> 算法庫

max, min 用于找出一組值中的最大值和最小值

swap 用于交換兩個變量的值

sort 用于對一個范圍內的元素進行排序

lower_bound, upper_bound 用于在已排序的容器中查找元素的下界和上界

unique(a,a+n)-a 用于在一個范圍內刪除相鄰重復的元素,返回不重復元素的范圍終點

Next_permutation 用于獲取一個序列的下一個排列

Prev_permutation 用于獲取一個序列的前一個排列

<stack> 棧

st.push() 將一個元素壓入棧頂,即將一個新元素添加到棧的頂部

st.top() 返回棧頂元素的引用,但不會移除該元素。如果棧為空,訪問棧頂元素是不安全的

st.pop() 移除棧頂元素,即將棧頂元素彈出,使得棧的大小減少一個元素

st.empty() 返回一個布爾值,表示棧是否為空。如果棧為空,返回 true,否則返回 false

st.size() 返回當前棧中元素的數量,即棧的大小

<queue> 隊列

q.push() 將一個元素壓入隊列尾部,即將一個新元素添加到隊列的尾部

q.front() 返回隊列頭部的元素的引用,但不會移除該元素。如果隊列為空,訪問隊列頭部元素是不安全的

q.pop() 移除隊列頭部的元素,即將隊列頭部元素彈出,使得隊列中的元素數量減少一個

q.empty() 返回一個布爾值,表示隊列是否為空。如果隊列為空,返回 true,否則返回 false

q.size() 返回當前隊列中元素的數量,即隊列的大小

<vector> 向量

V[i] 訪問向量 V 中的第 i 個元素,其中索引從 0 開始

v.push_back() 將一個元素添加到向量的末尾

V. insert() 在向量中的指定位置 it 處插入一個元素,可以是具體的值 value

v.size() 返回向量中元素的數量,即向量的大小

v.front() 返回向量的第一個元素的引用

v.back() 返回向量的最后一個元素的引用

v.empty() 返回一個布爾值,表示向量是否為空。如果向量為空,返回 true,否則返回 false
v.clear() 移除向量中的所有元素,使得向量為空

v.erase(it) 從向量中移除由迭代器 it 指向的元素

<map> 映射

map<int, int> a 創建一個名為 a 的映射,其中鍵和值都是整數類型。

m.find(x) 在映射 m 中查找鍵為 x 的元素,返回一個迭代器指向該元素。如果找不到,返回 m.end() 迭代器。

m.count(x) 返回映射 m 中鍵為`x 的元素的數量。由于映射中每個鍵只能有一個對應的值,所以這個函數的返回值要么是 0(未找到)要么是 1(找到)。

m.size() 返回映射中元素的數量,即映射的大小。

<list> 列表

li.front() 返回雙向鏈表 li 中的第一個元素的引用。

li.pop_back()?移除雙向鏈表 li 的最后一個元素。

li.pop_front() 移除雙向鏈表 li 的第一個元素。

<deque> 雙向鏈表

雙端隊列允許在兩端(前端和后端)高效地插入和移除元素。

dq.push_back(value) 和 dq.push_front(value):在后端或前端添加元素。

dq.pop_back() 和 dq.pop_front():從后端或前端移除元素。

dq.back() 和 dq.front():訪問后端和前端元素。

dq.size():返回元素數量。

dq.empty():檢查是否為空。

dq.clear():移除所有元素。

dq.at(index):訪問特定索引處的元素。

dq.begin() 和 end():返回迭代器。

dq.rbegin() 和 rend():反向迭代器。

dq.erase(position):移除指定位置的元素。

dq.insert(position, value):在指定位置插入元素。

dq.swap(other):交換兩個雙端隊列的內容。

<set> 集合

insert(value):插入一個元素到集合中。插入后會自動排序,且不會插入重復元素。 erase(value):從集合中刪除指定的元素。

find(value):查找給定元素是否存在于集合中,如果存在,返回指向該元素的迭代器,否則返回 end()。

size():返回集合中的元素數量。

empty():檢查集合是否為空。

clear():移除集合中的所有元素。

begin() 和 end():返回迭代器,用于遍歷集合。

lower_bound(value):返回第一個大于等于給定值的元素的迭代器。

upper_bound(value):返回第一個大于給定值的元素的迭代器。

equal_range(value):返回一個 pair,其中包含了與給定值相等的元素的范圍。

#include <set>
#include <iostream>
using namespace std;int main() {set<int> mySet;mySet.insert(5);mySet.insert(3);mySet.insert(8);cout << "Set contains:";for (int num : mySet) {cout << " " << num;}cout << endl;if (mySet.find(3) != mySet.end()) {cout << "3 在集合中." << endl;}return 0;
}

Iterator 送代器

#include <vector>
#include <iostream>
using namespace std;int main() {vector<int> numbers = {1, 2, 3, 4, 5};// 使用送代器遍歷for (vector<int>::iterator it = numbers.begin(); it != numbers.end(); ++it) {cout << *it << " ";}return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/37876.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/37876.shtml
英文地址,請注明出處:http://en.pswp.cn/news/37876.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

新的 Python URL 解析漏洞可能導致命令執行攻擊

Python URL 解析函數中的一個高嚴重性安全漏洞已被披露&#xff0c;該漏洞可繞過 blocklist 實現的域或協議過濾方法&#xff0c;導致任意文件讀取和命令執行。 CERT 協調中心&#xff08;CERT/CC&#xff09;在周五的一份公告中說&#xff1a;當整個 URL 都以空白字符開頭時&…

在 docker 中快速啟動 Apache Hive

介紹 在偽分布式模式下&#xff0c;在Docker容器內運行Apache Hive&#xff0c;可以提供以下功能&#xff1a;快速啟動/調試/為Hive準備測試環境。 快速開始 1. 拉取鏡像 從DockerHub&#xff1a;https://hub.docker.com/r/apache/hive/tags中拉取鏡像。目前發布了3個鏡像&…

gitlab修改遠程倉庫地址

目錄 背景&#xff1a; 解決&#xff1a; 1.刪除本地倉庫關聯的遠程地址&#xff0c;添加新的遠程倉庫地址 2.直接修改本地倉庫關聯的遠程倉庫地址 3.打開.git隱藏文件修改遠程倉庫地址 4.拉取代碼報錯(git host key verification failed) 背景&#xff1a; 公司搬家&#…

數字圖像處理 - 圖像處理結合機器學習的應用示例

在本文中,特別關注樹葉分類機器學習技術的實現。我們的目標是演示如何利用機器學習算法來分析一系列葉子照片,從而實現準確分類并提供對植物領域有價值的算法。 圖像處理中機器學習的本質 機器學習使計算機能夠學習模式并根據視覺數據進行預測,徹底改變了圖像處理領域。在葉…

image has dependent child images

問題&#xff1a;很多none的鏡像無法被刪除 解決過程&#xff1a; 1、通過 docker image prune -f 提示可刪除為 0 2、直接進行刪除報錯&#xff1a; docker rmi 8f5116cbc201Error response from daemon: conflict: unable to delete 8f5116cbc201 (cannot be forced) - im…

銀河麒麟安裝php7.1.33

銀河麒麟V10兼容CentOS 8 安裝過程與CentOS類似。 TencentOS3.1安裝PHPNginxredis測試系統_樂大師的博客-CSDN博客 可以參考之前我寫的文章。 不過有2個細節不同&#xff0c;下面說下。 問題1&#xff1a;編譯錯誤提示“error:off_t undefined” 解決方法&#xff1a; 編…

TCP收發信息(C++)

目錄 一、介紹 二、收數據 三、發數據 一、介紹 tcp和udp的區別之一&#xff0c;即tcp是有連接的&#xff0c;udp是無連接的&#xff0c;udp收發數據的代碼可以獨立運行&#xff0c;tcp發數據前必須確保收數據的一方是打開的&#xff0c;否則無法建立連接。 二、收數據 tc…

宋浩線性代數筆記(五)矩陣的對角化

本章的知識點難度和重要程度都是線代中當之無愧的T0級&#xff0c;對于各種雜碎的知識點&#xff0c;多做題復盤才能良好的掌握&#xff0c;良好掌握的關鍵點在于&#xff1a;所謂的性質A與性質B&#xff0c;是誰推導得誰~

MyBatis的SqlSession使用步驟

對MyBatis的SqlSession理解 SqlSession是 MyBatis 框架中的一個接口&#xff0c;用于執行與數據庫相關的操作。它提供了一系列方法&#xff0c;用于查詢、插入、更新和刪除數據等數據庫操作。 SqlSession接口是通過SqlSessionFactory創建的&#xff0c;每個SqlSession實例都代…

Ubuntu22.04復現SHADEWACHER(手動安你就慢了)

因為我是打算跑TC數據集&#xff0c;所以跳過audit安裝。 我的Ubuntu使用的是清華源。 1. Parser Setup 1.1 g apt install g1.2 neo4j Ubuntu22.04換什么源都會導致無法定位軟件包&#xff0c;添加neo4j的官方源又會導致不信任的源。 22.04以下的版本&#xff0c;直接用命…

MySQL 根據多字段查詢重復數據

MySQL 根據多字段查詢重復數據 在實際的數據庫應用中&#xff0c;我們經常需要根據多個字段來查詢重復的數據。MySQL 提供了一些方法來實現這個功能&#xff0c;讓我們能夠快速準確地找到和處理重復數據。本文將介紹如何使用 MySQL 來根據多字段查詢重復數據&#xff0c;并提供…

SIFT 算法 | 如何在 Python 中使用 SIFT 進行圖像匹配

介紹 人類通過記憶和理解來識別物體、人和圖像。你看到某件事的次數越多,你就越容易記住它。此外,每當一個圖像在你的腦海中彈出時,它就會將該項目或圖像與一堆相關的圖像或事物聯系起來。如果我告訴你我們可以使用一種稱為 SIFT 算法的技術來教機器做同樣的事情呢? 盡管…

C語言——動態內存函數(malloc、calloc、realloc、free)

了解動態內存函數 前言&#xff1a;一、malloc函數二、calloc函數三、realloc函數四、free函數 前言&#xff1a; 在C語言中&#xff0c;動態內存函數是塊重要的知識點。以往&#xff0c;我們開辟空間都是固定得&#xff0c;數組編譯結束后就不能繼續給它開辟空間了&#xff0…

貼吧照片和酷狗音樂簡單爬取

爬取的基本步驟 很簡單&#xff0c;主要是兩大步 向url發起請求 這里注意找準對應資源的url&#xff0c;如果對應資源不讓程序代碼訪問&#xff0c;這里可以偽裝成瀏覽器發起請求。 解析上一步返回的源代碼&#xff0c;從中提取想要的資源 這里解析看具體情況&#xff0c;一…

13 計算機視覺-代碼詳解

13.2 微調 為了防止在訓練集上過擬合&#xff0c;有兩種辦法&#xff0c;第一種是擴大訓練集數量&#xff0c;但是需要大量的成本&#xff1b;第二種就是應用遷移學習&#xff0c;將源數據學習到的知識遷移到目標數據集&#xff0c;即在把在源數據訓練好的參數和模型&#xff…

淺談現代醫院手術室IT供配電系統的設計與研究

安科瑞 華楠 &#xff3b;摘要&#xff3d; 隨著人們的生活水平的不斷提高&#xff0c;醫療條件的不斷改善&#xff0c;人們對健康越來越重視同時對醫療條件的要求也越來越高&#xff0c;對醫院手術室醫療設施提出了新的要求。以往醫院普通手術室狀況已不能滿足人們的要求&…

GPT的第一個創作

嗨&#xff0c;大家好&#xff0c;我是賴興泳&#xff01;今天&#xff0c;我要和大家聊一聊前端開發&#xff0c;就像我用音符創造音樂一樣&#xff0c;前端開發也是創造美麗的用戶界面的過程。 前端開發是構建網站和應用程序用戶界面的關鍵部分。就像音樂家需要精心編排音符…

騰訊云CVM服務器端口在安全組中打開!

騰訊云服務器CVM端口怎么開通&#xff1f;騰訊云服務器端口是通過配置安全組規則來開通的&#xff0c;騰訊云服務器網以開通80端口為例來詳細說下騰訊云輕量應用服務器開啟端口的方法&#xff0c;其他的端口的開通如8080、1433、443、3306、8888等端口也適用于此方法&#xff0…

基于Yolov5與LabelMe訓練自己數據的圖像分割完整流程

基于Yolov5與LabelMe訓練自己數據的實例分割完整流程 1. Yolov5配置2. 創建labelme虛擬環境4. 接下來開始使用labelme繪制分割數據集4.1 json to txt4.2 劃分數據集(可分可不分) 5. 訓練 1. Yolov5配置 參照這邊文章&#xff1a; https://blog.csdn.net/ruotianxia/article/de…

okcc對接ASR平臺,okcc客戶投訴的安全問題

客戶投訴: 客戶為什么要投訴&#xff1f;實際上分為兩種情況&#xff0c;一是客戶被冒犯到不能容忍導致的投訴&#xff0c;二是惡意投訴。降低客戶被冒犯投訴的概率&#xff0c;無非就是選擇客戶、規范用語、降低頻度&#xff1b;減少惡意投訴&#xff0c;回避是實踐證明最有效…