1234567
891011
12
//元素交換swap(a[1], a[3]);
//sort排序
sort(a.begin(),a.end());
//陣列顛倒
reverse(a.begin(), a.end());
//陣列元素置為0
memset(a, 0, a.size());
//陣列取值
a.push_back();
//定義二維陣列
vector
< vector
> result
集合中沒有重複元素
1234567
891011
1213
1415
16
//定義乙個int型別的集合set s;
set::iterator it;
//插入元素10(插入的數值預設從小到大排序)
s.insert(10);
//刪除元素10
s.erase(10);
//清空集合
s.clear();
//集合元素的個數
s.size();
//判斷集合是否為空
s.empty();
//查詢集合中是否與元素10,有的話返回10,沒有則返回s.end()
it = s.find(10);
//
mutiset:多重集合與set最大的區別是它可以插入重複元素,如果刪除的話,相同的會一起刪除,如果查詢的話,返回該元素的迭代器的位置,若有相同,返回第乙個元素的位址,其它使用和set基本類似。
c++中map中的元素按key公升序排列,基本格式為map m,需要使用標頭檔案#include。
12345
//資料的插入map studentsid;
studentsid.instert(pair(1, "student_one"));
studentsid.instert(map
::value_type(2, "student_two"));
studentid[3]="student_three";
1234567
8
//排序sort(a.begin(), a.end());
//將所有字元轉換成小寫
transform(s.begin(), s.end(), s.begin(),::tolower);
//擷取字串
//標準庫的string有乙個substr函式用來擷取子字串。一般使用時傳入兩個引數,第乙個是開始的座標(第乙個字元是0),第二個是擷取的長度。
string
name
("rockderia")
;string
firstname
(name.substr(0,4))
;
異或(^):二進位制數進行運算相同為0,不同為1
與運算(&):同時為1,才為1;
或運算(|):同時為0,才為0;
取反(~)
左移(<<):左邊的二進位制丟失,右邊補0,左移最高位不包括1,左移相當於該數乘2;
右移(>>):正數左補0,負數左補1
不同長度的資料進行位運算時,系統會自動補齊。
棧具有先進後出的特性
1234567
891011
1213
1415
// 預設建構函式stack
s;// 複製建構函式
stack
> s1;
stack
> s2(s1);
// 入棧
s.push();
// 出棧,不會顯示內容
s.pop();
// 提取棧頂元素
s.top();
// 判斷是否非空
s.empty() // true表示未空,false表示非空
// 返回棧中數目
s.size()
1234567
891011
1213
14
// 定義佇列queue
q;// 入隊
q.push(x)
// 出隊
q.pop()
// 訪問隊首元素
q.front()
// 訪問隊尾元素
q.back()
// 判斷佇列是否為空
q.empty()
// 訪問佇列中元素個數
q.size()
佇列具有先進先出的特性
LeetCode刷題總結
123 4567 891011 12 元素交換 swap a 1 a 3 sort排序 sort a.begin a.end 陣列顛倒 reverse a.begin a.end 陣列元素置為0 memset a,0,a.size 陣列取值 a.push back 定義二維陣列 vector vec...
leetcode刷題總結 6 10題
六 zigzag conversion 本題屬於比較簡單的,很容易就能總結出規律。乙個zigzag數以2 numrows 2為乙個迴圈,每乙個豎行的字母下標為乙個cycle,除了第一行和最後一行,中間各行都要加乙個j cycle 2 i i為從零開始的行號,j為每個迴圈裡i cycle n.clas...
LeetCode刷題總結101 150
思路 分析到此題並不是簡單的把乙個結點劃分為左右子樹就可以的,因而使用遞迴時必定需要重新定義乙個函式,函式的引數即為需要比較的兩個樹,該樹的特徵即a的左子樹與b的右子樹相同,同理a的右子樹與b的左子樹相同,此時即為true。需要注意的一點是,分析好邏輯關係,如下 if lf null rt null...