C++ - 數據容器之 forward_list(創建與初始化、元素訪問、容量判斷、元素遍歷、添加元素、刪除元素)

一、創建與初始化

  • 引入 <forward_list> 并使用 std 命名空間
#include <forward_list>using namespace std;
  1. 創建一個空 forward_list
forward_list<int> fl;
  1. 創建一個包含 5 個元素,每個元素初始化為 0 的 forward_list
forward_list<int> fl(5);
  1. 創建一個包含 5 個元素,每個元素初始化為 100 的 forward_list
forward_list<int> fl(5, 100);
  1. 初始化 forward_list
forward_list<int> fl = { 1, 2, 3 };

二、元素訪問

  • 只能直接訪問第一個元素
#include <iostream>
#include <forward_list>using namespace std;int main() {forward_list<int> fl = { 1, 2, 3 };int result = fl.front();cout << "第一個元素:" << result << endl;return 0;
}

三、容量判斷

  1. 獲取 forward_list 是否為空
#include <iostream>
#include <forward_list>using namespace std;int main() {forward_list<int> fl = { 10, 20, 30 };if (fl.empty()) {cout << "forward_list 是空的" << endl;}else {cout << "forward_list 不為空" << endl;}return 0;
}
# 輸出結果forward_list 不為空
  1. 由于沒有 size() 方法,需要手動計算
#include <iostream>
#include <forward_list>using namespace std;int main() {forward_list<int> fl = { 1, 2, 3, 4, 5 };size_t count = distance(fl.begin(), fl.end());cout << "元素數量:" << count << endl;return 0;
}
# 輸出結果元素數量:5

四、元素遍歷

#include <iostream>
#include <forward_list>using namespace std;int main() {forward_list<int> fl = { 1, 2, 3, 4, 5 };for (auto it = fl.begin(); it != fl.end(); ++it) {cout << *it << endl;}return 0;
}
# 輸出結果1
2
3
4
5

五、添加元素

  1. 在頭部插入元素
#include <iostream>
#include <forward_list>using namespace std;int main() {forward_list<int> my_list = { 1, 2, 3 };for (int val : my_list) {cout << val << endl;}cout << "-----" << endl;my_list.push_front(4);for (int val : my_list) {cout << val << endl;}return 0;
}
# 輸出結果1
2
3
-----
4
1
2
3
#include <iostream>
#include <forward_list>using namespace std;int main() {forward_list<int> my_list = { 1, 2, 3 };for (int val : my_list) {cout << val << endl;}cout << "-----" << endl;my_list.emplace_front(4);for (int val : my_list) {cout << val << endl;}return 0;
}
# 輸出結果1
2
3
-----
4
1
2
3
  1. 在指定位置后插入元素
#include <iostream>
#include <forward_list>using namespace std;int main() {forward_list<int> my_list = { 1, 2, 3 };for (int val : my_list) {cout << val << endl;}cout << "-----" << endl;// 在第 2 個元素后插入auto it = my_list.begin();advance(it, 1);my_list.insert_after(it, 4);for (int val : my_list) {cout << val << endl;}return 0;
}
# 輸出結果1
2
3
-----
1
2
4
3
#include <iostream>
#include <forward_list>using namespace std;int main() {forward_list<int> my_list = { 1, 2, 3 };for (int val : my_list) {cout << val << endl;}cout << "-----" << endl;// 在第 2 個元素后插入auto it = my_list.begin();advance(it, 1);my_list.emplace_after(it, 4);for (int val : my_list) {cout << val << endl;}return 0;
}
# 輸出結果1
2
3
-----
1
2
4
3

六、刪除元素

  1. 刪除頭部元素
#include <iostream>
#include <forward_list>using namespace std;int main() {forward_list<int> my_list = { 1, 2, 3 };for (int val : my_list) {cout << val << endl;}cout << "-----" << endl;my_list.pop_front();for (int val : my_list) {cout << val << endl;}return 0;
}
  1. 刪除指定位置后的元素
#include <iostream>
#include <forward_list>using namespace std;int main() {forward_list<int> my_list = { 1, 2, 3 };for (int val : my_list) {cout << val << endl;}cout << "-----" << endl;// 刪除第 1 個元素后的元素auto it = my_list.begin();my_list.erase_after(it);for (int val : my_list) {cout << val << endl;}return 0;
}
# 輸出結果1
2
3
-----
1
3
  1. 清空 forward_list
#include <iostream>
#include <forward_list>using namespace std;int main() {forward_list<int> my_list = { 1, 2, 3 };for (int val : my_list) {cout << val << endl;}cout << "-----" << endl;my_list.clear();for (int val : my_list) {cout << val << endl;}return 0;
}
# 輸出結果1
2
3
-----

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

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

相關文章

Python爬蟲實戰:獲取企信網指定公司基本工商數據并分析,為客戶選擇公司做參考

一、引言 在商業決策、市場調研等眾多領域,企業的基本工商信息是至關重要的參考依據。企信網作為權威的企業信息查詢平臺,匯聚了海量企業的詳細信息。借助 Python 的爬蟲技術,能夠自動從企信網獲取指定公司的工商信息,再運用數據分析和機器學習方法對這些信息進行深入挖掘…

STM32部分:2-1、STM32CubeMX介紹

飛書文檔https://x509p6c8to.feishu.cn/wiki/BTv4wW3O7ita1dkQGkrcBb9rnXg 資料手冊 英文手冊 https://www.stmcu.com.cn/Designresource/detail/user_manual/711316 中文手冊 https://www.stmcu.com.cn/Designresource/detail/localization_document/710583 界面說明 首…

SVM實戰:從理論到鳶尾花數據集的分類可視化

SVM實戰&#xff1a;從理論到鳶尾花數據集的分類可視化 在機器學習的廣闊領域中&#xff0c;支持向量機&#xff08;Support Vector Machine&#xff0c;SVM&#xff09;作為一種經典且強大的分類算法&#xff0c;備受矚目。它憑借獨特的思想和卓越的性能&#xff0c;在模式識…

陶瓷陶器缺陷檢測VOC+YOLO格式938張2類別

數據集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路徑的txt文件&#xff0c;僅僅包含jpg圖片以及對應的VOC格式xml文件和yolo格式txt文件) 圖片數量(jpg文件個數)&#xff1a;938 標注數量(xml文件個數)&#xff1a;938 標注數量(txt文件個數)&#xff1a;938 標注…

通過Docker部署Prometheus + Grafana搭建監控平臺【超詳細版】

文章目錄 前言一、Prometheus、Grafana1.1 Prometheus簡介1.2 Grafana簡介1.3 Prometheus的核心組件1.4 Prometheus優點1.5 Prometheus缺點 二、部署Docker三、主節點部署PrometheusGrafana3.1 部署Prometheus3.2 防火墻開放端口3.3 訪問服務3.4 安裝Grafana3.5 防火墻開放端口…

華為云Flexus+DeepSeek征文|DeepSeek-V3商用服務開通教程

目錄 DeepSeek-V3/R1商用服務開通使用感受 DeepSeek-V3/R1商用服務開通 1、首先需要訪問ModelArts Studio_MaaS_大模型即服務_華為云 2、在網站右上角登陸自己的華為云賬號&#xff0c;如果沒有華為云賬號的話&#xff0c;則需要自己先注冊一個。 3、接著點擊ModelArts Stu…

ubuntu20.04修改默認網卡名稱為eth*

在Ubuntu 20.04.6中&#xff0c;遵循可預測網絡接口設備命名規則&#xff0c;網卡名稱默認可能是以"enp*"、"ens*"等開頭的格式&#xff0c;但是實際使用過程中&#xff0c;某些應用只能讀取eth*的網卡&#xff0c;需要修改。 查看網卡名稱 ip link show …

linux下抓包工具--tcpdump介紹

文章目錄 1. 前言2. 命令介紹3. 常見選項3.1. 接口與基本控制3.2 輸出控制3.3 文件操作3.4 高級調試 4. 過濾表達式4.1 協議類型4.2 方向與地址4.3 邏輯運算符 5. 典型使用場景5.1 網絡故障排查5.2 安全分析與入侵檢測5.3 性能分析與優化 linux下抓包工具--tcpdump介紹 1. 前言…

AI大模型-RAG到底能做些什么?

RAG常見的應用場景&#xff0c;有以下幾個方面&#xff1a; 1.智能客服系統&#xff1a;比如電商領域&#xff0c;對客戶提出的常見問題&#xff0c;進行自動回復。減少人力成本。 2.人力資源管理&#xff1a;一個新的員工&#xff0c;入職一家大型公司&#xff0c;公司中有各…

C++ unordered_set unordered_map

上篇文章我們講解了哈希表的實現&#xff0c;這節嘗試使用哈希表來封裝unordered_set/map 1. unordered_set/map的框架 封裝的過程實際上與set/map類似&#xff0c;在unordered_set/map層傳遞一個仿函數&#xff0c;用于取出key值 由于我們平常使用的都是unordered_set/map&…

REST API、FastAPI與Flask API的對比分析

以下是關于REST API、FastAPI與Flask API的對比分析&#xff0c;涵蓋架構設計、性能表現、開發效率等核心維度&#xff1a; 一、核心定位與架構差異 REST API 本質&#xff1a;一種基于HTTP協議的架構風格&#xff0c;強調資源化操作&#xff08;通過URI定位資源&#xff09;、…

實戰交易策略 篇二十二:情緒流龍頭交易策略

文章目錄 系列文章理論基礎股市的本質資金與情緒題材龍頭股龍頭戰法實戰技法情緒流技術分析擇時實操情緒流龍頭戰法要訣六大步驟九大術法買賣點量化標準系列文章 實戰交易策略 篇一:奧利弗瓦萊士短線交易策略 實戰交易策略 篇二:杰西利弗莫爾股票大作手操盤術策略 實戰交易策…

用VNA進行天線阻抗匹配的實例大圖

比如我這天線&#xff0c;在7Mhz時不諧振&#xff0c;我進行匹配 天線的阻抗很高&#xff0c;大約是在500-1400歐&#xff0c;而等效電容電感很小。 所以我考慮使用阻抗變壓器降低阻抗。 1。測試天線阻抗&#xff0c;電阻相當高&#xff0c;等效電容很小。 2。通過磁環匹配到…

一個讀寫excel的簡單程序(golang)

最近總有一些臨時統計的需求&#xff0c;比如其他團隊生產的一批數據&#xff0c;需要確認這批數據是否入到數倉&#xff0c;提供的列表就是一個excel&#xff0c;我們就需要讀取excel中的所有數據&#xff0c;之后查詢數倉數據庫確認這批數據是否存在&#xff0c;并分別將存在…

【AI面試準備】AI誤判案例知識庫優化方案

面試題&#xff1a;建立內部知識庫&#xff1a;收集AI誤判案例訓練領域專屬模型。 在回答關于“建立內部知識庫收集AI誤判案例訓練領域專屬模型”的面試問題時&#xff0c;建議從以下結構化框架展開&#xff0c;既能體現專業性&#xff0c;又能展現解決問題的系統性和實際落地…

Ocelot\Consul\.NetCore的微服務應用案例

案例資料鏈接&#xff1a;https://download.csdn.net/download/ly1h1/90733765 1.效果 實現兩個微服務ServerAPI1和ServerAPI2的負載均衡以及高可用。具體原理&#xff0c;看以下示意圖。 2.部署條件 1、騰訊云的輕量化服務器 2、WindowServer2016 3、.NETCore7.0 4、Negut …

中小企業MES系統需求文檔

適用對象&#xff1a;中小型離散制造企業&#xff08;年產值1-5億&#xff0c;員工200-800人&#xff09; 版本&#xff1a;V1.0 日期&#xff1a;2025年5月2日 一、業務背景與目標 1.1 現狀痛點 生產黑箱化&#xff1a;車間進度依賴人工匯報&#xff0c;異常響應延遲>2小…

OpenAI最新發布的GPT-4.1系列模型,性能體驗如何?

簡單來說,這次GPT-4.1的核心思路就是:更實用、更懂開發者、更便宜!OpenAI這次沒搞太多花里胡哨的概念,而是實實在在地提升了大家最關心的幾個點:寫代碼、聽指令、處理超長文本,而且知識庫也更新到了2024年6月。 寫代碼。要說這次GPT-4.1最亮眼的地方,可能就是寫代碼這塊…

【基礎算法】二分查找的多種寫法

前言 在算法競賽中&#xff0c;二分查找使用的頻率是非常高的&#xff0c;對于C選手而言&#xff0c;有STL中自帶的lower_bound和upper_bound二分查找&#xff0c;可以很方便的進行二分查找。但是非C選手、或者需要自定義多條件查找的情況需要自己寫一個二分&#xff0c;本文對…

蘭亭妙微:火箭發射界面案例分享

北京藍藍設計團隊來自清華美院&#xff0c;工作多年&#xff0c;行業經驗豐富&#xff0c;專業性很強。我們是熱愛設計&#xff0c;設計不僅是我們的專業&#xff0c;我們的職業&#xff0c;還是我們的愛好。每一個藍藍設計的設計師都希望自己的設計越來越好&#xff0c;以高標…