C++应用 # 随机数生成 # 传统C方法:
1#include<cstdlib> 2#include<ctime> 3//初始化随机种子(只需一次) 4srand(time(0)); 5int random_num = rand(); 6int random_inrange = rand()%100;//0-99 7int random_inrange = rand()%100+1//1-100 8//随机质量不怎么高,易预测,不均匀 现代C++方法:
1#include<random> 关于std:: # 由于平时写算法题都用头文件:
#include<bits/stdc++.h>+using namespace std;
容易忽略了std::的使用;
1std::工具名-->使用std仓库的某个工具 2using namespace std-->默认从std使用工具 3//实际工作时,不推荐使用上述头文件 4//输入输出,字符串string,容器,算法函数等都需要加std:: 5std::cout<<"minecraft"; 6std::endl; 7std::vector<int> a;std::map<std::string,int> mp; 8std::string s = "hello"; 9std::sort(a,a+n); 10std::swap(a,b); 11std::max(x,y);std::min(x,y); 也可以只引入常用的几个:
数据结构 # 语法 # Class类 # 类似于Struct结构体的升级拓展版,先初步了解一下Class的基本语法吧.
用于操作和数据的封装,面向对象
大部分情况,Class内部只包含**数据和函数**
能够把近似的数据和函数归类整理,有助于避免屎山代码
Class内部可以再嵌套另一个Class,这里不展开
1class 类名称{ 2private://以下内容私有,只有class内部可以调用和访问 3 //这里暂时不讨论private,只以public为例 4 string password;//比如密码私有 5public://以下内容公开,class内外都可以调用和访问 6 int age; 7 string name;//属性,数据 8 void print(){//普通函数 9 cout<<age<<" "<<name<<endl;//用于做具体操作 10 } 11 类名称(int nianling,string xingming){//构造函数 12 //函数名称必须与类名称一样,不需要写返还的类型 13 //用于创造东西 14 age = nianling; 15 name = xingming; 16 } 17 类名称(){ 18 age = 0; 19 name = ""; 20 } 21};//别漏分号 22 23 24int main(){ 25 //Class的类名称即是一个自定义的变量类型 26 //可以自行在main中调用 27 类名称 pastman;//无构造函数的初始化 28 pastman.age = 18; 29 pastman.name = "hth"; 30 //调用构造函数创建对象 31 类名称 deadman(18,"hth"); 32 //利用class创建了一个自定义类型的变量,同时调用构造函数进行了初始化 33 return 0; 34} 动态链表 # 一般都是推荐带上头结点的: