- 博客(12)
- 问答 (1)
- 收藏
- 关注
原创 通过指针修改常对象的属性
通过指针修改常对象的属性我们知道对于常对象来说,成员属性在构造的时候被初始化后一般不能被修改,但是我们可以通过指针获取到该成员属性的地址再进行间接修改。上代码就懂了:#include <iostream>using namespace std;class Student{public: Student(int n,float s):num(n),score(s){ } Student(const Student* s){ num = s->num; score =
2022-05-17 16:17:12
393
原创 C++ 中的 输入cin加速
C++ 中的 输入cin加速5月的第一天我发现了这个方法,真的有用,直接让一个暴力的方法,从耗时130ms降到95ms,真的有用。std::ios::sync_with_stdio(false);//消除输入输出缓存std::cin.tie(0);//解除cin与cout 的绑定//方法1:使用立即执行函数int init = []() { ios::sync_with_stdio(false); cin.tie(nullptr); return 0;}();//
2022-05-02 08:29:15
1006
原创 池塘抽样算法 + 证明
池塘抽样算法池塘抽样算法描述在遍历数组时第cnt次遇到值为target 的元素时,取随机数与cnt求余,得到一个数,如果该数为0, 则将当前值为targer的元素的下标,赋值给ans,然后接着按上述方法继续遍历。最后得到的ans就是在该数组中值为target的元素的所有下标中的随机一个证明过程:首先在cnt = 1 时,所得的数必定为0,所以会进行首次给ans赋值.而之后如果再次出现rand()%cnt == 0 时,则再次对ans 进行赋值,所以在遍历这个数之前不论ans的值是什么,都会被赋
2022-04-25 18:10:24
270
原创 BFS广度优先搜索模板
BFS广度优先搜索模板广度优先搜索,就是像水中涟漪一样像外扩散,要基于队列实现。同时在向外搜索的时候要标记已经搜索的元素。模板一:节点一个一个地出栈,一颗子树一颗子树地入栈//比较好的广度优先搜索模板//一个节点一个节点地入队出队void bfs(起始点){ 将起始点放入队列中; 标记起点访问; while(如果队列不为空){ 访问队列中队首的元素x;//这里一般是对元素进行处理 删除队首元素; for(x 的所有相邻点){
2022-04-24 12:33:54
1609
原创 C++常用STL(standard template library)
@[tac]常用STL(standard template library)动态数组 vector声明 ://记得在使用vector时要先引入头文件#include<vector>//建议初始化在全局变量的位置vector<int> vec1;//一维//二维,最好在里面的那个<>里面加一个空格vector<vector<int> > vec2;//定义二维动态数组并赋初始值vector<vector<int>
2022-04-20 19:58:07
615
原创 范围for循环
范围for循环C++ 中的范围for循环中的类型为基本数据类型时,只能用于遍历,不能用于修改值但是当你将其中的基本数据类型修改为 引用类型时,就可以修改值了下面为一道力扣题:给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。class Solution {public: void sortColors(vector<int
2022-04-14 07:30:38
1066
原创 C++使用new关键字声明int数和int数组
关键字newnew :申请一个动态全局的空间,要手动释放内存可以new一个int类型的数,也可以new一个int类型的数组返回的是一个指针类型#include<iostream>using namespace std;int *f1(){ //a指向一个值为123的int数 int *a = new int(123); return a;}int *f2(){ int *b = new int[2]; b[0] = 0; b[1] = 1;}int main()
2022-04-12 21:02:21
2551
原创 C++实现选择排序
选择排序选择排序即:每轮从第i个数开始包括第i个数在内,找到其中最小的数,与第i个数交换位置。注意:当比较到最后一个数时,可以不比较当最小的数就是最初开始赋值给min的数时,可以不进行交换,因为有的交换方式在两个名称或指针指向同一个值的时候,不能实现正确的交换所以在交换前可以加一个判断具体代码实现见如下:#include<iostream>using namespace std;int main(){ int data[5] = {3,4,2,5,3}; //选择排序
2022-04-12 20:34:52
1108
原创 C++生成随机正整数,小数
生成随机数srand() rand()直接执行 cout << rand() << endl; 时可以产生一个随机整数#include<iostream>#include<cstdio>#include<random>#include<ctime>using namespace std;int main(){// srand(time(nullptr));// srand(100); for(int i =
2022-04-11 20:36:08
898
原创 C++ 定义类语法
文章目录C++类和对象定义一个类构造函数聚集C++类和对象定义一个类enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7};//枚举类型: CPU_Rank//在这里定义了的枚举的值 P1 P2 P3 都是可以直接使用的CPU_Rank类型的值class CPU{//定义一个类private://如果没有写这行,以下的属性也会默认是私有的 CPU_Rank rank; int frequency;//单位是MHz的整型数 float volage;//浮点型的电压
2022-04-10 18:29:43
448
原创 DevC++不能使用vector容器,同时也不支持范围for循环问题解决
DevC++不能使用vector容器,同时也不支持范围for循环问题解决
2022-04-01 19:53:17
4432
4
空空如也
devc++ vector 报错,不支持 范围for 如何调试?
2022-04-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人