日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ 标准模板库(STL)

發(fā)布時(shí)間:2025/3/13 c/c++ 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ 标准模板库(STL) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

C++ 標(biāo)準(zhǔn)模板庫(STL)
C++ STL (Standard Template Library標(biāo)準(zhǔn)模板庫) 是通用類模板和算法的集合,它提供給程序員一些標(biāo)準(zhǔn)的數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)如 queues(隊(duì)列), lists(鏈表), 和 stacks(棧)等.

C++ STL 提供給程序員以下三類數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn):

順序結(jié)構(gòu)?
C++ Vectors?
C++ Lists C++ Double-Ended Queues

容器適配器?
C++ Stacks?
C++ Queues?
C++ Priority Queues?
聯(lián)合容器?
C++ Bitsets?
C++ Maps?
C++ Multimaps?
C++ Sets?
C++ Multisets?
程序員使用復(fù)雜數(shù)據(jù)結(jié)構(gòu)的最困難的部分已經(jīng)由STL完成. 如果程序員想使用包含int數(shù)據(jù)的stack, 他只要寫出如下的代碼:

stack<int> myStack;
接下來, 他只要簡單的調(diào)用 push() 和 pop() 函數(shù)來操作棧. 借助 C++ 模板的威力, 他可以指定任何的數(shù)據(jù)類型,不僅僅是int類型. STL stack實(shí)現(xiàn)了棧的功能,而不管容納的是什么數(shù)據(jù)類型.

C++ Bitsets
C++ Bitsets給程序員提供一種位集合的數(shù)據(jù)結(jié)構(gòu)。Bitsets使用許多二元操作符,比如邏輯和,或等。

Constructors 創(chuàng)建新bitsets?
Operators 比較和賦值bitsets?
any() 如果有任何一個(gè)位被設(shè)置就返回true?
count() 返回被設(shè)置的位的個(gè)數(shù)?
flip() 反轉(zhuǎn)bits中的位?
none() 如果沒有位被設(shè)置則返回true?
reset() 清空所有位?
set() 設(shè)置位?
size() 返回可以容納的位的個(gè)數(shù)?
test() 返回指定位的狀態(tài)?
to_string() 返回bitset的字符串表示?
to_ulong() 返回bitset的整數(shù)表示

?

C++ Double Ended Queues(雙向隊(duì)列)
雙向隊(duì)列和向量很相似,但是它允許在容器頭部快速插入和刪除(就像在尾部一樣)。

Constructors 創(chuàng)建一個(gè)新雙向隊(duì)列?
Operators 比較和賦值雙向隊(duì)列?
assign() 設(shè)置雙向隊(duì)列的值?
at() 返回指定的元素?
back() 返回最后一個(gè)元素?
begin() 返回指向第一個(gè)元素的迭代器?
clear() 刪除所有元素?
empty() 返回真如果雙向隊(duì)列為空?
end() 返回指向尾部的迭代器?
erase() 刪除一個(gè)元素?
front() 返回第一個(gè)元素?
get_allocator() 返回雙向隊(duì)列的配置器?
insert() 插入一個(gè)元素到雙向隊(duì)列中?
max_size() 返回雙向隊(duì)列能容納的最大元素個(gè)數(shù)?
pop_back() 刪除尾部的元素?
pop_front() 刪除頭部的元素?
push_back() 在尾部加入一個(gè)元素?
push_front() 在頭部加入一個(gè)元素?
rbegin() 返回指向尾部的逆向迭代器?
rend() 返回指向頭部的逆向迭代器?
resize() 改變雙向隊(duì)列的大小?
size() 返回雙向隊(duì)列中元素的個(gè)數(shù)?
swap() 和另一個(gè)雙向隊(duì)列交換元素

?

C++ Lists(鏈表)
Lists將元素按順序儲(chǔ)存在鏈表中. 與 向量(vectors)相比, 它允許快速的插入和刪除,但是隨機(jī)訪問卻比較慢.

assign() 給list賦值?
back() 返回最后一個(gè)元素?
begin() 返回指向第一個(gè)元素的迭代器?
clear() 刪除所有元素?
empty() 如果list是空的則返回true?
end() 返回末尾的迭代器?
erase() 刪除一個(gè)元素?
front() 返回第一個(gè)元素?
get_allocator() 返回list的配置器?
insert() 插入一個(gè)元素到list中?
max_size() 返回list能容納的最大元素?cái)?shù)量?
merge() 合并兩個(gè)list?
pop_back() 刪除最后一個(gè)元素?
pop_front() 刪除第一個(gè)元素?
push_back() 在list的末尾添加一個(gè)元素?
push_front() 在list的頭部添加一個(gè)元素?
rbegin() 返回指向第一個(gè)元素的逆向迭代器?
remove() 從list刪除元素?
remove_if() 按指定條件刪除元素?
rend() 指向list末尾的逆向迭代器?
resize() 改變list的大小?
reverse() 把list的元素倒轉(zhuǎn)?
size() 返回list中的元素個(gè)數(shù)?
sort() 給list排序?
splice() 合并兩個(gè)list?
swap() 交換兩個(gè)list?
unique() 刪除list中重復(fù)的元素

?

C++ Maps
C++ Maps是一種關(guān)聯(lián)式容器,包含“關(guān)鍵字/值”對(duì)

begin() 返回指向map頭部的迭代器?
clear() 刪除所有元素?
count() 返回指定元素出現(xiàn)的次數(shù)?
empty() 如果map為空則返回true?
end() 返回指向map末尾的迭代器?
equal_range() 返回特殊條目的迭代器對(duì)?
erase() 刪除一個(gè)元素?
find() 查找一個(gè)元素?
get_allocator() 返回map的配置器?
insert() 插入元素?
key_comp() 返回比較元素key的函數(shù)?
lower_bound() 返回鍵值>=給定元素的第一個(gè)位置?
max_size() 返回可以容納的最大元素個(gè)數(shù)?
rbegin() 返回一個(gè)指向map尾部的逆向迭代器?
rend() 返回一個(gè)指向map頭部的逆向迭代器?
size() 返回map中元素的個(gè)數(shù)?
swap() 交換兩個(gè)map?
upper_bound() 返回鍵值>給定元素的第一個(gè)位置?
value_comp() 返回比較元素value的函數(shù)

?

C++ Queues(隊(duì)列)
C++隊(duì)列是一種容器適配器,它給予程序員一種先進(jìn)先出(FIFO)的數(shù)據(jù)結(jié)構(gòu)。

back() 返回最后一個(gè)元素?
empty() 如果隊(duì)列空則返回真?
front() 返回第一個(gè)元素?
pop() 刪除第一個(gè)元素?
push() 在末尾加入一個(gè)元素?
size() 返回隊(duì)列中元素的個(gè)數(shù)


C++ Sets

集合(Set)是一種包含已排序?qū)ο蟮年P(guān)聯(lián)容器

begin()
返回指向第一個(gè)元素的迭代器
clear()
清除所有元素
count()
返回某個(gè)值元素的個(gè)數(shù)
empty()
如果集合為空,返回true
end()
返回指向最后一個(gè)元素的迭代器
equal_range()
返回集合中與給定值相等的上下限的兩個(gè)迭代器
erase()
刪除集合中的元素
find()
返回一個(gè)指向被查找到元素的迭代器
get_allocator()
返回集合的分配器
insert()
在集合中插入元素
lower_bound()
返回指向大于(或等于)某值的第一個(gè)元素的迭代器
key_comp()
返回一個(gè)用于元素間值比較的函數(shù)
max_size()
返回集合能容納的元素的最大限值
rbegin()
返回指向集合中最后一個(gè)元素的反向迭代器
rend()
返回指向集合中第一個(gè)元素的反向迭代器
size()
集合中元素的數(shù)目
swap()
交換兩個(gè)集合變量
upper_bound()
返回大于某個(gè)值元素的迭代器
value_comp()
返回一個(gè)用于比較元素間的值的函數(shù)


C++ Stacks(堆棧)
C++ Stack(堆棧)是一個(gè)容器類的改編,為程序員提供了堆棧的全部功能,——也就是說實(shí)現(xiàn)了一個(gè)先進(jìn)后出(FILO)的數(shù)據(jù)結(jié)構(gòu)。

操作比較和分配堆棧?
empty() 堆棧為空則返回真?
pop() 移除棧頂元素?
push() 在棧頂增加元素?
size() 返回棧中元素?cái)?shù)目?
top() 返回棧頂元素

C++ Vectors
Vectors 包含著一系列連續(xù)存儲(chǔ)的元素,其行為和數(shù)組類似。訪問Vector中的任意元素或從末尾添加元素都可以在常量級(jí)時(shí)間復(fù)雜度內(nèi)完成,而查找特定值的元素所處的位置或是在Vector中插入元素則是線性時(shí)間復(fù)雜度。
Constructors 構(gòu)造函數(shù)?
Operators 對(duì)vector進(jìn)行賦值或比較?
assign() 對(duì)Vector中的元素賦值?
at() 返回指定位置的元素?
back() 返回最末一個(gè)元素?
begin() 返回第一個(gè)元素的迭代器?
capacity() 返回vector所能容納的元素?cái)?shù)量(在不重新分配內(nèi)存的情況下)?
clear() 清空所有元素?
empty() 判斷Vector是否為空(返回true時(shí)為空)?
end() 返回最末元素的迭代器(譯注:實(shí)指向最末元素的下一個(gè)位置)?
erase() 刪除指定元素?
front() 返回第一個(gè)元素?
get_allocator() 返回vector的內(nèi)存分配器?
insert() 插入元素到Vector中?
max_size() 返回Vector所能容納元素的最大數(shù)量(上限)?
pop_back() 移除最后一個(gè)元素?
push_back() 在Vector最后添加一個(gè)元素?
rbegin() 返回Vector尾部的逆迭代器?
rend() 返回Vector起始的逆迭代器?
reserve() 設(shè)置Vector最小的元素容納數(shù)量?
resize() 改變Vector元素?cái)?shù)量的大小?
size() 返回Vector元素?cái)?shù)量的大小?
swap() 交換兩個(gè)Vector


C++ MultiMaps
C++ Multimaps和maps很相似,但是MultiMaps允許重復(fù)的元素。

begin() 返回指向第一個(gè)元素的迭代器?
clear() 刪除所有元素?
count() 返回一個(gè)元素出現(xiàn)的次數(shù)?
empty() 如果multimap為空則返回真?
end() 返回一個(gè)指向multimap末尾的迭代器?
equal_range() 返回指向元素的key為指定值的迭代器對(duì)?
erase() 刪除元素?
find() 查找元素?
get_allocator() 返回multimap的配置器?
insert() 插入元素?
key_comp() 返回比較key的函數(shù)?
lower_bound() 返回鍵值>=給定元素的第一個(gè)位置?
max_size() 返回可以容納的最大元素個(gè)數(shù)?
rbegin() 返回一個(gè)指向mulitmap尾部的逆向迭代器?
rend() 返回一個(gè)指向multimap頭部的逆向迭代器?
size() 返回multimap中元素的個(gè)數(shù)?
swap() 交換兩個(gè)multimaps?
upper_bound() 返回鍵值>給定元素的第一個(gè)位置?
value_comp() 返回比較元素value的函數(shù)


C++ MultiSets

多元集合(MultiSets)和集合(Sets)相像,只不過支持重復(fù)對(duì)象。

begin()
返回指向第一個(gè)元素的迭代器
clear()
清除所有元素
count()
返回指向某個(gè)值元素的個(gè)數(shù)
empty()
如果集合為空,返回true
end()
返回指向最后一個(gè)元素的迭代器
equal_range()
返回集合中與給定值相等的上下限的兩個(gè)迭代器
erase()
刪除集合中的元素
find()
返回一個(gè)指向被查找到元素的迭代器
get_allocator()
返回多元集合的分配器
insert()
在集合中插入元素
key_comp()
返回一個(gè)用于元素間值比較的函數(shù)
lower_bound()
返回指向大于(或等于)某值的第一個(gè)元素的迭代器
max_size()
返回集合能容納的元素的最大限值
rbegin()
返回指向多元集合中最后一個(gè)元素的反向迭代器
rend()
返回指向多元集合中第一個(gè)元素的反向迭代器
size()
多元集合中元素的數(shù)目
swap()
交換兩個(gè)多元集合變量
upper_bound()
返回一個(gè)大于某個(gè)值元素的迭代器
value_comp()
返回一個(gè)用于比較元素間的值的函數(shù)


C++ Priority Queues(優(yōu)先隊(duì)列)
C++優(yōu)先隊(duì)列類似隊(duì)列,但是在這個(gè)數(shù)據(jù)結(jié)構(gòu)中的元素按照一定的斷言排列有序。

empty() 如果優(yōu)先隊(duì)列為空,則返回真?
pop() 刪除第一個(gè)元素?
push() 加入一個(gè)元素?
size() 返回優(yōu)先隊(duì)列中擁有的元素的個(gè)數(shù)?
top() 返回優(yōu)先隊(duì)列中有最高優(yōu)先級(jí)的元素

轉(zhuǎn)載于:https://www.cnblogs.com/fenghuan/p/4788933.html

總結(jié)

以上是生活随笔為你收集整理的C++ 标准模板库(STL)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。