快速从C转到C++
C++学习笔记
头文件
#include <cmath> #include <cstdio> #include <cctype> #include <cstring>
Const
常量的定义
Getline
cin读入字符串是以空格为分隔符,getline可以读取一整行字符串
string s; getline(cin, s)//读取一行字符串,包括空格 cout<<s.length()
substr
string s2 = s.substr(4); string s3 = s.substr(5, 3);//下标从5开始,3个字符
struct
struct str{ int grade; float score; }; stu arr[10];
引用传值
&
代表引用传值
容器
vector, stack, queue, map, set
大小 size()
函数
vector常用的方法
// // Created by wenbinAi on 2020/1/10. // #include <iostream> #include <vector> using namespace std; int main(){ vector<int> a; cout<<a.size()<<endl; for(int i = 0; i < 10; i++){ a.push_back(i); } cout << a.size() << endl; vector<int> b(15); cout << b.size() << endl; for(int i = 0; i < b.size(); i++){ b[i] = 15; } vector<int> c(20, 2); for(int i = 0; i < c.size(); i++){ cout << c[i] << " "; cout << endl; } for(auto it = c.begin(); it != c.end(); it++){ cout << *it <<" "; } return 0; }
集合set
set是集合,⼀个set⾥⾯的各元素是各不相同的,⽽且set会按照元素进⾏从⼩到⼤排序
// // Created by wenbinAi on 2020/1/10. // #include <iostream> #include <set> using namespace std; int main(){ set<int> s; s.insert(1); cout<<*(s.begin())<<endl; for(int i = 0; i < 6; i++){ s.insert(i); } for(auto it = s.begin(); it != s.end(); it++){ cout<<*(it)<<" "; } cout<<endl; return 0; }
map
// // Created by wenbinAi on 2020/1/10. // #include <iostream> #include <map> using namespace std; int main(){ map<string, int> m; m["hello"] = 2; cout<<m["hello"]<<endl; cout<<m.size()<<endl; m["world"] = 3; for(auto it = m.begin(); it != m.end(); it++){ cout<<it->first<<" "<<it->second<<endl; } return 0; }
stack
// // Created by wenbinAi on 2020/1/10. // #include <iostream> #include <stack> using namespace std; int main(){ stack<int> s; for(int i = 0; i < 6; i++){ s.push(i); } cout<<s.top()<<endl; cout<<s.size()<<endl; s.pop(); cout<<s.size()<<endl; return 0; }
cmp排序
// // Created by wenbinAi on 2020/1/10. // #include <iostream> #include <vector> #include <algorithm> using namespace std; struct stu{ int number; int score; }; bool cmp(stu a, stu b){ if(a.score != b.score) return a.score > b.score; else return a.number < b.number; } int main(){ stu s[3]; for(int i = 0; i < 3; i++){ cin>>s[i].number; cin>>s[i].score; } for(int i = 0; i < 3; i++){ cout<<s[i].number<<" "<<s[i].score; } cout<<endl; sort(s,s+3,cmp); for(int i = 0; i < 3; i++){ cout<<s[i].number<<" "<<s[i].score; } return 0; } //输入输出: //1 85 //2 98 //3 84 ///1 852 983 84 //2 981 853 84
unordered_map 与 unordered_set
头文件
#include<unordered_map>
与#include <unorder_set
C++11新特性
auto
自动推导变量to_string
将非字符串量转化为字符串
string s1 = to_string(123); string s2 = to_string(4.5);
stoi
和stod
将字符串转化为
int
与double
类型