STL 介紹 用法

2021-09-30 10:10:03 字數 4467 閱讀 2216

一.標準c++庫字串類std::string的用法

#include

std::string s1;

std::string s3(s2);

std::string s2("this is a string");

begin       得到指向字串開頭的iterator

end       得到指向字串結尾的iterator

rbegin       得到指向反向字串開頭的iterator

rend       得到指向反向字串結尾的iterator

size       得到字串的大小

length()       和size函式功能相同

max_size       字串可能的最大大小

capacity       在不重新分配記憶體的情況下,字串可能的大小

empty       判斷是否為空

operator       取第幾個元素,相當於陣列

c_str       取得c風格的const char* 字串

data       取得字串內容位址

operator=       賦值操作符

reserve       預留空間

swap       交換函式

insert       插入字元

push_back       追加字元

erase       刪除字串

clear       清空字元容器中所有內容

resize       重新分配空間

assign       和賦值操作符一樣

replace       替代

copy       字串到空間

find       查詢,返回基於0的索引號

rfind       反向查詢

find_first_of       查詢包含子串中的任何字元,返回第乙個位置

find_first_not_of       查詢不包含子串中的任何字元,返回第乙個位置

find_last_of       查詢包含子串中的任何字元,返回最後乙個位置

find_last_not_of       查詢不包含子串中的任何字元,返回最後乙個位置

substr(n1,len)       得到字串從n1開始的長度為len的子串

比較字串(支援所有的關係運算子)

compare       比較字串

operator+       字串鏈結

operator+=       += 操作符

operator==       判斷是否相等

operator!=       判斷是否不等於

operator<       判斷是否小於

operator>>       從輸入流中讀入字串

operator<<       字串寫入輸出流

getline       從輸入流中讀入一行

二.向量類模板std::vector成員函式:

#include

std::vectorname;

std::vectorname(size);

std::vectorname(size,value);

std::vectorname(myvector);

std::vectorname(first,last);

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個向量的內容

三.雙端佇列類模板std::deque成員函式:

#include

std::dequename;

std::dequename(size);

std::dequename(size,value);

std::dequename(mydeque);

std::dequename(first,last);

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

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

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

四.鍊錶類模板std::list成員函式:

#include

std::listname;

std::listname(size);

std::listname(size,value);

std::listname(mylist);

std::listname(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刪除所有重複的元素,使煉表中沒有重複元素

五.容器介面卡堆疊類std::stack成員函式:

#include

stack實現先進後出的操作

std::stackname;

type為堆疊操作的資料型別

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

例如std::stack> intstack;

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

六.容器介面卡佇列類std::queue成員函式:

#include

queue實現先進先出的操作

std::queuename;

type為佇列操作的資料型別

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

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

七.關聯式容器:

集合類std::set,

多重集合類std::multiset,

對映類std::map,

多重對映類std::multimap,

位集合std::bitset

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

#include

1.非修正序列演算法:

2.修正序列演算法:

3.排序演算法:

4.數值演算法:

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

#include

例如:std::vectorintvector;

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

//first指向向量第乙個元素,*first即為第乙個元素的值

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

//end指向向量最後乙個元素,*end即為最後乙個元素的值

STL用法介紹

參考 模板 template class bitset n指定了容器大小,因為bitset是大小固定的容器。建構函式 預設建構函式用0填充,在使用引數構造時沒有被初始化到的位也用0填充。bitset採用小端模式,構造的時候從低位開始構造,輸出的時候從高位開始輸出 1 bitset unsigned ...

STL中map的用法簡單介紹

一 map的插入,有三種方法 mapmapstudent 1 mapstudent.insert map value type keys,value 2 mapstudent.insert pair keys,value 3 mapstudent 1 value 1 map value type k...

STL容器用法與介紹之vector

a vector是乙個封裝了動態大小陣列的順序容器,並支援反轉 b vector是在堆上分配記憶體,並在記憶體中具有連續的儲存空間,它提供了自動記憶體管理功能,隨著元素的增加或刪除,記憶體會同步進行增大或縮小 c 訪問vector中的元素可以通過元素下標實現隨機訪問,也可以通過迭代器實現順序訪問 d...