char* 和char: 區別賦值:過載運算符號 = | str.assign();
查詢:str.find() | str.rfind()
string s = 「abca」;替換:str.replace()if(s.find(『v』 != s.npos) //v不存在於s串中
比較:s1.compare(s2) s1=s2 return 0;
訪問:str[i] | str.at(i)
插入:str.insert(i, s1)
刪除:str.erase(i, len)
子串:str.substr(i, len)
vectorv;
初始化
一維:vectorexample(len,num); //初始化長度 len;填充元素 num / 預設 0 ;賦值:v.assign() | v() | v.push_back()二維:vector> example(10, vector(8)); //10行8列,全部初始化為零
訪問:vector::iterator it = v.begin(); it != v.end(); it++; *it進行訪問| v.at(i) | v[i] | v.front() | v.back()
容量:v.empty() | v.capacity()
empty和capacity區別大小:v.resize(len, element)
插入:v.insert() | v.push_back()
刪除:v.erase() | v.pop_back() | v.clear()
互換:v1.swap(v2) | vector(v).swap(v)巧用匿名物件收縮記憶體
預留記憶體(沒有初始化):v.reserve()
deque
dequed;
兩端插入:d.push_front() | d.push_back()
兩端刪除:d.pop_front() | d.pop_back()
stack
stackst;
插入:st.push();
讀取棧頂:st.top();
刪除棧頂:st.pop();
queue
queueq;
插入:q.push();
讀取:q.front() | q.back()
刪除:q.pop()
list與vector區別listlst;
賦值:lst.assign() | lst1=lst2
交換:lst.swap()
訪問:list::iterator it = lst.begin(); it != lst.end(); it++; *it進行訪問容量:lst.empty() | lst.size()
大小:lst.resize(len, element)
(兩端)插入:lst.push_front() | lst.push_back() | lst.insert()
(兩端)刪除:lst.pop_front() | lst.pop_back() | lst.erase() | lst.remove(element) | lst.clear()
訪問:lst.front() | lst.back()
反**lst.reverse()
排序: lst.sort()
unordered_set 無序setset st;
訪問:set::iterator it = st.begin();it != st.end(); it++; *it進行訪問insert(x):插入x並自動排序去重
find(val):返回val值對應的迭代器erase(it):刪除單個元素,結合find()使用st.erase(st.find(val));刪除區間
其他:size();clear();
map mp;
訪問:下標 mp[『a』] | 迭代器 it->first訪問鍵 ,it->second訪問值
賦值:mp[『a』] = 10;
find(key):返回鍵值為key的迭代器
erase():erase(it)刪除it的迭代器 | erase(key)刪除key值對應的迭代器
訪問:top
入隊:push
出隊:pop
第二個引數:堆的容器
第三個引數:對第乙個引數的比較方法
構建:pairp(「haha」, 5) | make_pair(「haha」, 5)
訪問:p->first & p->second
比較:先比較first,first相等比較second
pair作為map的鍵值進行插入:mp.insert(make_pair(「haha」, 5)) 用it->first訪問鍵,it->second訪問值
max() | min() | abs() :兩個引數
fabs()標頭檔案:math
swap() 交換x和y的值
reverse(it_begin(), it_end()):區間內元素 (迭代器) 反轉[ , )
fill(it_begin(), it_end(), val):區間內元素置數[ , )
sort(it_begin, it_end, cmp):(預設公升序)排序、map和set不能用
next_permutation() :下乙個全排列中的序列
lower_bound() | upper_bound() :對有序陣列或者容器進行
常用的容器中迭代器種類為雙向迭代器,和隨機訪問迭代器
演算法筆記第六章總結 STL
標頭檔案 include 定義 動態陣列 vector內元素的訪問 以vector int name為例 vector int iterator it name.begin name i it i 常用函式 push back 在vector最後新增元素。o 1 pop back 刪除vector的...
第六章筆記
頂層const與底層const的區別 頂層const是指標物件本身是乙個常量,而底層const是指標所指的物件是乙個常量,理解起來就相當於前者是直接,後者是間接。宣告函式可以多次,但是每個形參只能用實參預設初始化一次,即後續宣告只可以為未預設初始化的形參新增預設實參,而且其形參右側的所有形參必須都有...
c 第六章 模板
1 函式模板 template t add t a,t b return a b 隱式呼叫 add 5,6 顯示呼叫 add 5,6 模板之間可以構成過載,模板與普通函式之間也可構成過載,呼叫順序如下 跟某一普通的引數完全匹配,呼叫之,跟函式模板的引數可以完全匹配 隱式呼叫 呼叫之,跟函式模按引數不...