Created
August 1, 2015 12:18
-
-
Save WildfootW/83fa2f0beed3e8a1bcc8 to your computer and use it in GitHub Desktop.
2015 C++ note by domen111
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//sort, reverse | |
#include <algorithm> | |
#include <cstdio> | |
using namespace std; | |
int cmp(int a,int b){ | |
return a>b;//小於:由小而大 ,大於:由大而小 | |
} | |
int main(int argc, char** argv) { | |
int arr[]={9,5,88,92,7,6,50,88,754,32,1,0}; | |
sort(arr,arr+sizeof(arr)/sizeof(arr[0]),cmp); | |
//stable_sort(arr,arr+sizeof(arr)/sizeof(arr[0]),cmp); | |
//reverse(arr,arr+sizeof(arr)/sizeof(arr[0])); | |
for(int i=0;i<sizeof(arr)/sizeof(arr[0]);i++){ | |
printf("%d,",arr[i]); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//queue | |
#include <iostream> | |
#include <queue> | |
using namespace std; | |
int main(int argc, char** argv) { | |
queue<int> q; | |
q.push(111); | |
q.push(222); | |
q.push(333); | |
cout<<"q.front="<<q.front()<<",q.back="<<q.back()<<endl; | |
cout<<"length="<<q.size()<<endl; | |
while(!q.empty()){ | |
cout<<q.front()<<","; | |
q.pop(); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//stack | |
#include <iostream> | |
#include <stack> | |
using namespace std; | |
int main(int argc, char** argv) { | |
stack<int> s; | |
s.push(111); | |
s.push(222); | |
s.push(333); | |
cout<<"s.top="<<s.top()<<endl; | |
cout<<"length="<<s.size()<<endl; | |
while(!s.empty()){ | |
cout<<s.top()<<","; | |
s.pop(); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//priority_queue | |
#include <iostream> | |
#include <queue> | |
using namespace std; | |
class cp{ | |
public: | |
bool operator()(int &a, int &b){ | |
return a>b;//小於:由小而大 ,大於:由大而小 ,但取出(top())時是從最後面取出 | |
} | |
}; | |
//或用struct | |
/*struct cp{ | |
bool operator()(int &a, int &b){ | |
return a<b; | |
} | |
};*/ | |
int main(int argc, char** argv) { | |
priority_queue<int> pq; | |
//priority_queue<int,vector<int>,cp> pq;//自訂順序 | |
//priority_queue<int,vector<int>,greater<int> > pq;//由大到小 | |
pq.push(555); | |
pq.push(222); | |
pq.push(333); | |
pq.push(22); | |
pq.push(2252); | |
pq.push(333); | |
cout<<"pq.top="<<pq.top()<<endl; | |
cout<<"length="<<pq.size()<<endl; | |
while(!pq.empty()){ | |
cout<<pq.top()<<","; | |
pq.pop(); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//map | |
#include <iostream> | |
#include <map> | |
#include <string> | |
using namespace std; | |
int main(int argc, char** argv) { | |
map<string,int> m; | |
m.clear();//清除全部 | |
m["b"]=22; | |
m["a"]=21; | |
m["c"]=33; | |
m.insert(make_pair("abb",99)); | |
m.insert(pair<string,int>("bbb",56)); | |
cout << m["abb"] << endl; | |
map<string,int>::iterator iter; | |
for(iter=m.begin();iter!=m.end();iter++){ | |
cout << iter->first << ":" << iter->second << ", "; | |
} | |
cout<<endl; | |
cout<<(m.find("k")!=m.end())<<endl;//如果找不到傳回map.end() | |
cout<<m.count("k")<<endl;//找到傳回1,找不到傳回0 | |
cout<< m.find("a")->second << endl; | |
cout<<m["k"]<<endl;//沒有k,傳回0 | |
//移除 | |
m.erase("b"); | |
//或者 | |
/*iter = m.find("b"); | |
m.erase (iter);*/ | |
cout<<m.empty()<<endl; | |
cout<<"length="<<m.size()<<endl; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//set | |
#include <iostream> | |
#include <set> | |
using namespace std; | |
int main(int argc, char** argv) { | |
set<int> s; | |
s.clear(); | |
s.insert(123); | |
s.insert(456); | |
s.insert(99); | |
s.insert(4); | |
s.insert(999); | |
s.insert(999); //重複輸入沒用,用multiset才有用 | |
cout<<s.empty()<<endl; | |
cout<<s.size()<<endl; | |
if(s.find(456) == s.end()) | |
cout << "Not found " << endl; | |
else | |
cout << "Found 456" << endl; | |
cout<<s.erase(456)<<endl;//找到456傳回1,找不到傳回0 | |
//s.erase(s.find(456)); | |
set<int>::iterator iter; | |
for(iter=s.begin();iter!=s.end();iter++){ | |
cout<<*iter<<", "; | |
} | |
cout<<endl; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//vector | |
#include <iostream> | |
#include <vector> | |
using namespace std; | |
int main(int argc, char** argv) { | |
vector<int> v; | |
v.clear(); | |
v.push_back(11); | |
v.push_back(22); | |
v.push_back(22); | |
v.push_back(99); | |
v.push_back(11); | |
v.push_back(22); | |
v.insert(v.begin()+1,1); | |
v.pop_back(); | |
vector<int>::iterator iter; | |
for(iter=v.begin();iter!=v.end();iter++){ | |
cout << *iter << ", "; | |
} | |
cout<<endl; | |
//或 | |
for(int i=0; i<v.size() ; i++){ | |
cout << v[i] << ", "; | |
} | |
cout<<endl; | |
cout<<v.empty()<<endl; | |
v.reserve(50);//保留空間 | |
cout<<v.size()<<endl;//6 | |
cout<<v.capacity()<<endl;//50 | |
v.resize(50,123);//小於原來大小,會刪掉多餘元素,大於原來大小會補123(如果沒寫就補0) | |
cout<<v.front()<<v.back()<<endl;//最前和最後一筆資料 | |
v.erase(v.begin()+3); | |
v.erase(v.begin()+3,v.begin()+6); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//list | |
#include <iostream> | |
#include <list> | |
using namespace std; | |
bool cmp (int a, int b){ | |
return a<b; | |
} | |
int main(int argc, char** argv) { | |
list<int> l; | |
l.clear(); | |
l.push_back(11); | |
l.push_back(22); | |
l.push_back(22); | |
l.push_back(99); | |
l.push_back(11); | |
l.push_back(22); | |
l.push_front(88); | |
list<int>::iterator iter; | |
for(iter=l.begin();iter!=l.end();iter++){ | |
cout << *iter << ", "; | |
} | |
cout<<endl; | |
l.sort(); | |
//l.sort(cmp); | |
l.insert(++l.begin(),1);//不能用l.begin()+1 | |
l.pop_back(); | |
l.pop_front(); | |
//cout<<l[3]<<endl; //不能用中括號讀取(會編譯錯誤) | |
cout<<l.empty()<<endl; | |
cout<<l.size()<<endl; | |
l.resize(50,123);//小於原來大小,會刪掉多餘元素,大於原來大小會補123(如果沒寫就補0) | |
cout<<l.front()<<l.back()<<endl;//最前和最後一筆資料 | |
l.erase(++++++l.begin()); | |
l.erase(++++l.begin(),----l.end()); | |
l.remove(22);//移除value為22的元素 | |
l.reverse(); | |
l.unique();//移除連續重複 | |
cout<<*(--l.end());//讀取最後一筆資料,end()讀到的是最後一筆資料的下一個位置 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment