快速从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类型

