C++
框架&输入输出
#include <iostream>
using namespace std;
//写了这个之后使用标准库组件前面就不用写std::
int main(){
return 0;
}
输入 std::cin>>x
输出 std::cout<<"hello world"<<std::endl;
//std::endl用来换行
格式化输出:
#include <iomanip>
// 用于控制输出格式
double pi = 3.14159265358979;
std::cout << "Pi to 2 decimal places: " << std::fixed <<
std::setprecision(2) << pi << std::endl;
std::fixed 表示使用固定的小数点表示法
std::setprecision(n) 控制浮点数字的输出精度
c++语法:
1.auto
声明变量时用auto代替类型名,让编译器自动推导变量类型
例子:
string s;
auto p=s.begin();
2.范围for循环
#include<iostream>
int main(){
for(auto el : {1,1,4,5,1,4}){
std::cout<<el<<' ';
}
return 0;
}
3.使用using定义别名(using TypeA=TypeB;)
#include<map>
template<typename T>
using intTo=std::map<int,T>;
int main(){
intTo<char>map1;
//键是int类型,值是char类型的map1
intTo<double>map2;
}
4.Lambda表达式
auto funcName = [&] ](Type1 x1,Type2 x2,...) ->returntype{ };
- 记得最后有分号。
- 采用[&]时Lambde函数可以修改外部的变量,用[=]不行。
- ->returnType可省略。
时间复杂度
定义:时间复杂度是衡量程序效率的量度,它是 语句执行次数T遵循以下规则的化简结果:
-
常数项化为1;
-
各项的系数化为1;
-
只保留最高阶的项;
-
忽略对数底数;
记作O(f),其中f是T的化简结果
空间复杂度
1.空间复杂度是衡量程序内存占用的量度,它是变量定义次数的化简结果,采用和时间复杂度完全相同的记号和化简规则。
今日做题小记
使用vector动态数组来定容
struct buz{ char fr; char to; };
cin>>q;
vector<buz>c(q);
根据q的值设动态数组c的容量,防止越界