自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 2021-07-12

new 与 malloc区别

2021-07-12 16:20:44 136

原创 stm32时钟

2021-06-08 10:40:23 122

原创 二叉树层序遍历

void FloorPrint_QUEUE(pTreeNode &Tree) //层序遍历_队列实现 { queue < pTreeNode> q; if (Tree != NULL) { q.push(Tree); //根节点进队列 } while (q.empty() == false) //队列不为空判断 { cout << q.front()->data << " → "; if (q.front()->leftPtr

2021-06-07 16:05:21 95

原创 运算符优先级

运算符优先级 优先级【高到低】: 第一级: 圆括号【()】、下标运算符【[]】、分量运算符的指向结构体成员运算符【->】、结构体成员运算符【.】 第二级: 逻辑非运算符【!】、按位取反运算符【~】、自增自减运算符【++ --】、负号运算符【-】、类型转换运算符【(类型)】、指针运算符和取地址运算符【和&】、长度运算符【sizeof】 第三级:乘法运算符【】、除法运算符【/】、取余运算符【%】 第四级:加法运算符【+】、减法运算符【-】 第五级:左移动运算符【<<】、右移动运算符【&

2021-06-02 10:14:02 1028

原创 correction

int main() { int a=1,b=2,m=0,n=0,k; k=(n=b<a)&&(m=a) ; printf("%d,%d\n",k,m); return 0; } 输出结果为0,0 &&连接,前面为0后面语句就不执行

2021-05-26 12:45:46 141

原创 c++基础

1.常量 作用:用于记录程序中不可更改的数据 C++定义常量两种方式 1.#define宏常量: #define 常量名 常量值 通常在文件上方定义,表示一个常量 2.const修饰的变量 const 数据类型 常量名=常量值通常在变量定义前加关键字const,修饰该变量为常量,不可修改 2.关键字 3 标识符命名规则 作用:C++规定给标识符(变量、常量)命名时,有一套自己的规则 标识符不能是关键字 ·标识符只能由字母、数字、下划线组成·第一个字符必须为字母或下划线 ...

2021-05-25 22:59:29 71

原创 整数翻转数字溢出

class Solution { public: int reverse(int x) { int res=0; while(x!=0){ // 检查数字是否溢出 if (res > INT_MAX / 10 || res < INT_MIN / 10) {return 0;} res=res*10 + x%10; x/=10; } ..

2021-05-23 15:33:17 90

原创 string常见的操作

1.统计一个给定字符串每个字母出现的次数 a[s[i]-'a']++;//数组a用来存储每个字母出现的次数 提前创建一个26位的数组,根据给定的数组长度对该数组进行遍历,a[s[i]-'a']++其中s[i]-'a'是确定给字符串s第i个元素在26个英文字母表的位置,该数组从0开始标号,根据ASI码查找,对应元素每出现一次就加一 *例题:给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1 class Solution { public: int firstUni

2021-05-19 15:24:00 66

原创 单链表

单链表创建 /*Definition for singly-linked list. struct ListNode { int val; ListNode *next; //定义节点的后继 ListNode(int x) : val(x),next(NULL){}//声明一个节点 };*/ 删除节点 class Solution { public: void deleteNode(ListNode* node) { node-&g

2021-05-18 16:24:55 120

原创 重复元素(STL)

给定一个整数数组,判断是否存在重复元素。 如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。 class Solution { public: bool containsDuplicate(vector<int>& nums) { sort(nums.begin(),nums.end()); return (unique(nums.begin(),nums.end())!=nums.end()); } }; unique函

2021-05-16 14:50:03 191

原创 贪心算法

本质时求取局部最优解 以抓包问题为例 在既满足价值最高同时又质量最大的情况,采用贪心算法,其局部最优体现在每个物体的性价比最高 采用贪心算法,只能保证局部最优,只适合奔雷问题物体可以切割的情况 加入物体不可以分割,同时满足两个条件就得采用动态规划 #include<iostream> #include<algorithm> using namespace std; //贪心算法适用于可分割的重物 //如果物体不可分割采用动态规划 struct bag { int w; //重量

2021-05-12 22:50:18 103

原创 类模板与函数模板的区别

1.类模板没有自动类型推导,只能用显示指定类型 2.类模板可以由默认参数

2021-05-12 16:12:49 154

原创 string

3.1.1 string基本概念本质: string是C++风格的字符串,而string本质上是一个类string和char区别: . char是一个指针 string是一个类,类内部封装了char*,管理这个字符串,是一个char型的容器。特点: string类内部封装了很多成员方法 例如:查找find,拷贝copy,删除delete替换replace,插入insert string管理char所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责 3.1.2 string构造函数构造函数原型: s

2021-05-09 21:09:06 82

原创 模板

#include<iostream> using namespace std; void swap(int a,int b) { int temp = a; a = b; b = temp; } template<class T> void mySort(T arr[],int len) { for (int i = 0; i < len-1;i++) { int min = i; for (int j = i + 1; j < len;j+...

2021-05-09 11:11:05 72

原创 空指针

空指针可以指向成员属性 if (this == NULL) { return; } 提高程序的健壮性

2021-04-29 15:19:11 88

原创 this pointer

this 指针 1.解决名称冲突 2,*this指向本体,可以实现链式编程 #include<iostream> using namespace std; class person { public: person(int age) { this->m_age = age; } person& personadd(person &p) { //返回person的引用,不然后面创建p2返回时会创建一个新的p2',返回引用返回的还是p2 this-&gt

2021-04-29 14:57:09 84

原创 类占空间

空类占用的内存空间为1个字节,为了区分空对象内存占用的位置 静态成员变量类内声明,类外初始化 sizeof(p)=4; 静态成员变量不属于类对象sizeof(p)=4; 非静态的成员函数不属于类对象 归根结底就是只有非静态的成员变量属于类对象 ...

2021-04-25 21:55:43 111

原创 静态成员变量

静态成员函数 #include<iostream> using namespace std; class person { public: static void fun() { cout << "static void fun的调用" << endl; } }; void test() { //第一种调用方法:创建对象 person p; p.fun(); //第二种方法:通过类名访问 person::fun(); } int main() {

2021-04-25 20:36:02 70

原创 类对象

类对象的构造函数和析构函数 #include<iostream> using namespace std; #include<string> class phone { public: phone(string pName) { this->p_name = pName; cout << "phone的构造函数的调用" << endl; } ~phone() { cout << "phone的析构函数" << e

2021-04-25 11:35:08 79

原创 初始化列表

2021-04-24 22:24:14 85

原创 深拷贝&浅拷贝

深拷贝与浅拷贝 如果内存在堆区,浅拷贝会造成内存空间的重复释放 使用深拷贝可以解决浅拷贝带来的问题,创建拷贝构造函数,避免内存重复释放 析构函数也可以发挥作用,检查内存是否是放干净,释放堆区 析构函数 ~person() { //检查指针是否为空,即堆区是否为空 //不为空认为置空 if (m_height!=NULL) { delete m_height; m_height = NULL; } } 如果类的内部有栈区数据,需要加拷贝构造函数 person(const person&

2021-04-24 22:14:29 81

原创 algorithm

algorithm 数据结构 数组,链表 查找数组比链表块 插入一个数链表比数组块 算法优劣测量 时间复杂度,数组在访问最后一个元素时间复杂度一样为o(1) 链表在访问最后一个元素时间复杂度o(n) 排序问题 顺序排序 #include<iostream> using namespace std; void print(int arr[],int len) { for (int i = 0; i < len; i++) { cout << arr[i] <&lt

2021-03-23 17:33:20 77

原创 c++review

c++回顾(容易忘) 常用转义字符 字符串 跳转语句 break消除循环不在执行下次循环 c++排序法方法 数组元素逆置 #include<iostream> using namespace std; int main(){ int arr[5] = {1,3,2,5,4}; cout << "数组逆序前:" << endl; for (int i = 0; i < 5;i++) { cout << arr[i] &lt

2021-03-22 22:15:50 66

原创 2021-03-11

stack容器

2021-03-11 22:00:01 51

原创 2021-03-10

评委打分 程序要求:10个评委给5个选手打分,去掉一个最高分和最低分,求取每个人的平均分数 思路:先创建一个选手的person类,定义name和score两个属性 定义函数createPerson创建对象,在主函数中定义一个vector容器用来储存对象,调用createPerson,在createPerson函数中传入一个person类型的vector容器引用,作为形参储存创建的person类,这个函数的本质用for循环给person的name属性赋值,初始分数,并且在循环中给vector容器存储对象,注意

2021-03-10 23:15:13 66

原创 2021-03-09

deque 3.3 deque容器 3.3.1 deque容器基本概念 功能: ·双端数组,可以对头端进行插入删除操作 deque与vector区别: . vector对于头部的插入删除效率低,数据量越大,效率越低. deque相对而言,对头部的插入删除速度回比vector快 . vector访问元素时的速度会比deque快,这和两者内部实现有关 3.3.2 deque构造函数 功能描述: . deque容器构造 函数原型: deque deqT;//默认构造形式 deque(beg, end);//构造

2021-03-10 16:36:22 50

原创 container

c++ vector embed #include using namespace std; #include #include void test() { vector<vector<int>>v; vector<int>v1; vector<int>v2; vector<int>v3; vector<int>v4; for (int i = 0; i < 4;i++) { v1.push_back(i+1); v2.pus

2021-03-07 16:32:44 130

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除