C 學習筆記 STL簡介

2021-08-11 02:53:02 字數 2464 閱讀 8326

stl:標準模板庫

標準模板庫,一般支援c++的編譯器都帶了stl的支援。裡面提供了大量的函式模板(通用演算法)和類模板。

一般用法:

(1)標頭檔案:stl的標頭檔案都是不帶.h字尾的. 例:#include

(2)名字空間:stl使用名字空間std,因此可能需要使用using namespace std;或者using std :: vector

向量vector用於實現陣列的功能,相當於在陣列的基礎上封裝了一些常用的功能,常用函式:

push_back***********

在尾部新增乙個元素

pop_back

************在尾部刪除乙個元素

clear

******************清空所有元素

at**********************

按索引訪問某個位置的元素

front

*******************返回頭元素

back******************

返回尾元素

size *******************

返回元素的個數

capacity

***************返回當前容量

resize******************

改變容量的大小

insert*******************

在中間插入元素

erase *******************

刪除中間的元素 

例:vector arr(16);//capacity:16

arr.clear();

//size = 0

arr.push_back(1);

//capacity:16,size:1

arr.push_back(2);

//capacity:16,size:2

迭代器vector::iterator iter

for(iter = arr,begin(); iter != arr.end(); iter ++)

list:封裝了鍊錶相關的功能

push_back

在尾部新增乙個元素

pop_back

在尾部刪除乙個元素

push_front

在頭部新增乙個元素

pop_front

在頭部刪除乙個元素

clear

清空所有元素

size

返回元素的個數

front

返回頭元素

back

返回尾元素

insert

在中間插入元素

erase

刪除中間的元素

遍歷:鍊錶不能隨機訪問,只能按順序鏈式訪問,所以,只能用迭代器iterator

list::iterator, list內的迭代器

list比vector更適合用插入刪除操作

list鍊錶中插入/刪除乙個節點

(1)遍歷list,找到目標位置

(2)呼叫insert/erase,插入/刪除乙個節點

例://刪除值為3的節點

for (list::iterator iter = lst.begin(); iter != lst.end(); iter++)

}string:封裝了字串相關的工作,內部實現和vector類似,操作介面上增加了字串的介面

附加字串

clear

清空capacity

容量size

實際長度

length

實際長度,等同於size函式

at 按索引訪問字元

find

查詢乙個字元或字串

rfind

從後往前查詢乙個字元或乙個子串

find_first_of

查詢匹配若干字串中的乙個字元

find_first_not_of

查詢不匹配若干字串的乙個字元

find_last_of

從後往前查詢,匹配若干字元中的乙個字元

find_last_not_of

從後往前查詢,不匹配若干字元中的乙個字元

substr

取得乙個子串

insert

插入字元或子串

replace

替換字元或子串

resize

顯示地設定string內部緩衝區的容量

取得字串內部的 char*

例:string text("hello,world");

string char* p = text.c_str();

printf("str: %s\n",test.c_str());

string t1;

//附加乙個字元

//附加乙個字串,拷貝前5個字元

//附加乙個字串,起點位置1,長度3

//附加2個『h'的字元

C 學習筆記 stl

最近在網上自學c 看到容器這塊覺著有點散 就自己打了一遍方便之後查詢 建構函式 賦值操作 拼接 查詢 替換 比較 字元訪問 插入和刪除 擷取字串 可動態擴充套件 單端陣列 從尾部插入刪除元素方便 支援迭代器的跳躍隨機訪問 vector iterator n 建構函式 賦值操作 容量和大小 插入和刪除...

C 學習筆記 簡介

using system 匯入system命名空間,包含console類 namespace program 命名空間 輸出 hello world console.write hello world 與console.writeline hello world 區別 前者輸出後不換行,後者輸出後自...

C 學習筆記 STL概述

c 語言的核心優勢就是便於軟體的重用。c 中有兩個方面體現重用 1.物件導向的思想 繼承和多型,標準類庫 2.generic programming 泛型程式設計 的思想 模板機制以及標準模板庫 stl 也就是說使用模板的程式設計。stl standard template library 就是一些...