c++中stl容器的常用示例

来源:http://www.cnblogs.com/llsq/archive/2016/08/18/5785439.html
-Advertisement-
Play Games

1、 set(集合)——包含了經過排序了的數據,這些數據的值(value)必須是唯一的。 也就是說輸入set容器後得到數據,會去重併排序。 s.insert()插入一個元素 s.begin() s.end()分別返迴首尾指針 s.clear() 清空集合 遍歷需要利用迭代器set<類型>::iter ...


1、 set(集合)——包含了經過排序了的數據,這些數據的值(value)必須是唯一的。   

    也就是說輸入set容器後得到數據,會去重併排序。
    s.insert()插入一個元素
    s.begin() s.end()分別返迴首尾指針
    s.clear() 清空集合
   遍歷需要利用迭代器set<類型>::iterator 變數名 ;

 

 

 

2、stringstream(容器)—— 可以將放入其中的string串按空格分隔成單詞(感覺就是一個過濾的)

 

 

 

3、vector(不定長數組)——不需要定義初始長度的數組
    v.push_back()向尾部插入一個元素
    v.size()返回數組大小
    v.pop_back()刪除最後一個元素
    v.insert(v[0]+i,a)在第i+1個元素後插入元素a
   常用的就這幾個成員函數,看看粘的網上的介紹:

 基本操作

(1)頭文件#include<vector>.

(2)創建vector對象,vector<int> vec;

(3)尾部插入數字:vec.push_back(a);

(4)使用下標訪問元素,cout<<vec[0]<<endl;記住下標是從0開始的。

(5)使用迭代器訪問元素.

vector<int>::iterator it;for(it=vec.begin();it!=vec.end();it++) cout<<*it<<endl;

(6)插入元素:    vec.insert(vec.begin()+i,a);在第i+1個元素前面插入a;

(7)刪除元素:    vec.erase(vec.begin()+2);刪除第3個元素

vec.erase(vec.begin()+i,vec.end()+j);刪除區間[i,j-1];區間從0開始

(8)向量大小:vec.size();

(9)清空:vec.clear();

 

 

 

 

4、map(映射)——map就是從鍵(key)到值(value)的映射。例如可以這樣用:
先定義map<string,int> m;    賦值m["green"]=8 。看起來就是數組的高級版,可以改變下標的表示。
當遇到讓我們計算 一篇文章中某單詞出現的次數時,(如果它只提問一次單詞a出現的次數,那麼我們直接遍歷一次,但是如果它問了很多次時,總不能一遍遍遍歷吧,會超時的)這時候就用到映射了。
直接看示例:

 

 

 

 

5、queue(隊列)——“先進先出”的一種數據結構,感覺這些容器就是把數組改造,添加一些成員函數,使它用起來更方便些,理解的時候可以對照如果用數組實現這樣的功能有多麻煩。
其本操作:
1、定義:queue<int> q;
2、  q.push(a) 將元素a加入隊列    
        q.front()訪問首元素      
        q.back() 訪問尾元素 
        q.pop() 刪除首元素 
        q.size()返回元素個數
       q.empty()判斷隊列是否為空 

 

 

 

 

6、stack(棧)——“先進後出”的一種數據結構,和隊列類比看。 
其本操作:
1、定義:stack<int> s;
2、  s.push(a) 將元素a壓入棧    
        s.top()訪問棧頂元素      
        s.pop() 刪除棧頂元素 
        s.size()返回元素個數
        s.empty()判斷棧是否為空 

 

 

 

待續…… 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本節內容和前節事件管理封裝是息息相關的,本節內容主要包含的代碼在connection{.h, .cc}中。 這裡面最主要的有兩個類:connection類和tcpsconn類,connetion類主要服務於單個套接字,包括套接字上的數據讀取寫入等,而tcpsconn類則是服務於套接字集合,如接收連接 ...
  • 已知有n個單位的水,問有幾種方式把這些水喝完,每天至少喝1個單位的水,而且每天喝的水的單位為整數。看上去挺複雜要跑迴圈,但其實上,列舉幾種情況之後就會發現是找規律的題了= =都是2的n-1次方,而且這題輸出二進位數就行了......那就更簡單了,直接輸出1,然後後面跟n-1個0就行了╮(╯_╰)╭ ...
  • ...
  • 1:過濾器概念 過濾器就是一種在請求目標資源的中間組件,比喻把污水轉換成純凈水中間需要一個污水凈化設備,那麼這個設備就好比一個過濾器。那麼我用圖來表示過濾器(可以有多個過濾器)運行的過程 2:Filter(過濾器)介面 Filter介面包含三個方法分別是init、doFilter、 destroy下 ...
  • //從鍵盤錄入學生信息(僅姓名和成績)並輸出。public class StuInformation {//此處命名用StuScore可能更恰當 String name; double score;}import java.util.Scanner; A_zhi 2016.08.18.22.00 ...
  • 電腦的發展歷史 電腦的學名叫電腦,電腦是用來做計算的。在古時候,人們最早使用的計算工具可能是手指,英文單詞“digit”既有“數字”的意思,又有“手指“的意思。古人用石頭打獵,所以還有可能是石頭來輔助計算。 缺點:手指和石頭太低效了 後來出現了”結繩 “記事。 缺點:結繩慢,繩子還有長度限制。 又 ...
  • 這一篇首先從allitebooks.com里抓取書籍列表的書籍信息和每本書對應的ISBN碼。 一、分析需求和網站結構 allitebooks.com這個網站的結構很簡單,分頁+書籍列表+書籍詳情頁。 要想得到書籍的詳細信息和ISBN碼,我們需要遍歷所有的頁碼,進入到書籍列表,然後從書籍列表進入到每本 ...
  • 1. 基本的代碼結構為: 2. ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...