一.標準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...