- 博客(27)
- 收藏
- 关注
原创 二叉树层序遍历
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
原创 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
原创 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->
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
原创 深拷贝&浅拷贝
深拷贝与浅拷贝 如果内存在堆区,浅拷贝会造成内存空间的重复释放 使用深拷贝可以解决浅拷贝带来的问题,创建拷贝构造函数,避免内存重复释放 析构函数也可以发挥作用,检查内存是否是放干净,释放堆区 析构函数 ~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] <<
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] <
2021-03-22 22:15:50
66
原创 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关注的人