06 2021 档案
输入输出 (格式化 非格式化)
摘要:非格式化输入输出函数可以由上面讲述的标准格式化输入输出函数代替, 但这些函数编译后代码少, 相对占用内存也小, 从而提高了速度, 同时使用也比较方便。下面分别进行介绍。 1. puts()和gets()函数 1.1 puts()函数 puts()函数用来向标准输出设备(屏幕)写字符串并换行, 其调用
模板类
摘要:当子类继承的父类是一个类模板时,子类在声明的时候,要指定出父类中T的类型 如果不指定,编译器无法给子类分配内存 如果想灵活指定出父类中T的类型,子类也需变为类模板 #include <iostream>#include <string> using namespace std; template<c
一些常用英文专有词
摘要:inherited 继承 abstract class 抽象类 如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类 access modifier 访问修饰符 即 public private protect 其中 结构体默认public 类默认private execute 执行 stat
简单文本输入输出
摘要:ofstream outFile 自己生成的一个ostream对象 outFile.open("fish.txt")//将会生成一个fish.txt//若本有文件 将其删断 outFile<<"wkxsb"; 使用完文件后 应将其关闭 outFile.close() 这里不再需要参数 因为已经连接了
类 基类与派生类
摘要:1. 由于继承的特性, 基类引用可以指向派生类对象. 基可指派 派不能指基(指针) 2 static 静态数据 以及其他普通的非静态const数据 只能在类方法文件中初始化 除非他是const常量 可以直接在类定义中初始化 3 class RatedPlayer :public TableTenni
函数指针
摘要:允许在不同的时间传递不同函数的地址 意味着可以使用不同的函数 举例 测算一个函数所需要的运行时间Time 其参数就是函数 1 得到函数的地址 函数名本身及为地址 但要注意 think与think()一个是地址一个是返回值 2 声明函数指针 (double//返回值 (*pf)//一定要加括号 (in
友元 友元函数 类 成员函数 静态成员函数
摘要:创建友元函数的第一步是将其原型放在类声明中,并在原型声明前加上关键字friend friend Time operator*(double 吗, const Time &t) · 虽然函数是在类声明中声明的 但他不是成员函数 因此不能使用成员运算符来调用 · 虽然函数不是成员函数 但它与成员函数的访
引用的奇怪知识点
摘要:1.int & a = b;左值引用 int && a = 36+2;//38 右值引用 2 如果实参和引用参数不匹配 将生成临时变量 (仅当参数为const引用时) 实参的类型正确 但不是左值//变量 实参的类型不正确 但可以转换为正确类型 以上两种条件会生成临时变量 例如 show(const
函数参数与一维 二维数组 array对象
摘要:1. show(int a[])或者show(int *a) 代表着传入了一个指针给函数 告诉函数数组的类型与位置 2. show(int a[][4]) 不能省略列数 show(int (*a)[4]) 代表着四个指向int数组的指针 3. array虽然是数组 但是它提供的是副本而非本身 所以需
c+练习题
摘要:1. 识认性 encapsulation、多态性polymorphic 继承性inherited OOP语言特点 2. Assume that AB is a class, the declaration of copy constructor of that class should be ( )
重载运算符
摘要:该函数为友元函数 不然是 time<<cout ostream & operator<<(ostream & os,const Time &t) { os<<XX<<' '<<YY; return os; } 在这里 return os是为了可以连贯的cout (cout<<1)<<Time; 重载
类 this 指针
摘要:每个成员函数都有一个this指向调用对象(this是个指针) 例 比较两个类大小 { if(a>b) return stock if(a<b) return *this }
函数模板
摘要:template <typename AnyType> void Swap(AnyType &a,AnyType &b)// AnyType *a是数组 { AnyType temp; temp=a; a=b; b=temp; } template<> void Swap<typename>(str
强制类型转换
摘要:1 static_cast<typename>(value); 更加严格的强制类型转换 2 关于类的强制类型转换 本质上是隐式调用了构造函数 且只有//接受一个参数(可以提供默认值)//的构造函数才能作为转换函数 Stonewt(double lbs) stonewt mycat mycat=19.
最小生成树 kruscal 堆优化 板子
摘要:每次都取出权值最小的边 并且保证他不会出现环(用并查集维护) 最小边用堆维护 #include<bits/stdc++.h> #include<iostream> using namespace std; typedef long long ll; typedef pair<ll,ll> P; co
判断平行四边形
摘要:首先 根据x与y的大小对点排序 最左点与最右点 互成对角 然后 向量法比较是否相等 最后 判断是否退化(一条直线) 即1 2 点与2 3 点斜率是否相等 用乘法验证保证精度
最短路/判负环/ 板子
摘要:SPFA/BELLMAN-FORD算法 复杂度最大(VE) #include<bits/stdc++.h> const long long inf=2147483647; const int maxn=10005; const int maxm=500005; using namespace std
P1439 最长公共子序列 n值为10000
摘要:题目描述 给出1 2 ... N 的两个排列 ,求它们的最长公共子序列。 输入格式 第一行是一个数 n。 接下来两行,每行为 n 个数,为自然数 1,2,n 的一个排列。 输出格式 一个数,即最长公共子序列的长度。 输入输出样例 输入 #1复制 5 3 2 1 4 5 1 2 3 4 5 输出 #1
STL
摘要:1.next_permutation(shuzu,shuzu+n) 当排列结束后会返回false 2。 lower_bound( )和upper_bound( )都是利用二分查找的方法在一个排好序的数组中进行查找的。 在从小到大的排序数组中, lower_bound( begin,end,num):