- 博客(20)
- 收藏
- 关注
原创 C++学习笔记之静态成员
#include<iostream> using namespace std; /* 静态成员 1)静态成员数据: ①为多个对象共享 ②不是对象成员 ③类内声明,类外定义和初始化 2)静态成员函数: ①提供不依赖于类的共同操作,没有this指针 ...
2020-03-08 21:03:27
259
原创 LeetCode189-旋转数组
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] 向右旋转 3 步: [5,6,7,1,2,3,4] 示例 2: 输入: [-1,-100,3,99] 和 k...
2020-03-08 20:55:30
209
原创 LeetCode994腐烂橘子问题
1 题目描述 在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格; 值 1 代表新鲜橘子; 值 2 代表腐烂的橘子。 每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。 示例 1: 输入:[[2,1,1],[1,1,0],[0,1,1]] 输出:4 像这种从一个点往外扩散的问题...
2020-03-04 20:40:16
550
原创 函数返回对象和返回引用
假设有个Book类 函数如下: Book sum(const Book&b) const { Book sum; … return sum; } 这里我们想创建一个新的Book对象。 返回对象,将创建对象的副本,当调用函数的时候可以使用它; 返回引用,引用的是sum对象,但是函数结束时,sum也就销毁了,也就相当于引用了一个不存在的对象。 ...
2020-02-29 09:56:52
425
原创 各种容器所支持的迭代器
随机存取迭代器: vector,deque 双向迭代器: list, set/multiset, map/multimap 不支持迭代器: stack, queue
2020-02-28 20:38:29
1503
原创 vector用swap来缩减空间
像下图那样,容器v1只有两个元素,却有着很大的容量,会造成存储浪费。 所以我们 (1)用v1初始化一个临时对象,临时对象会根据v1的元素个数进行初始化; (2)交换临时对象和v1; (3)临时对象交换后销毁,v1原来的空间也销毁了;v1就指向现在的空间,明显占用空间减少。 代码如下: vector<int> v1; for(int i=0;i<10000;i++) v1.pus...
2020-02-28 10:15:53
791
原创 yum 出现could not retrieve mirrorlist解决方法
1)输入:cd /etc/sysconfig/network-scripts 2)输入:ls 3) 如果里面有ifcfg-eth0: 输入:vi eth0 按下 o 并将 ONBOOT=no 改为 yes MM_CONTOLLED =yes 改为 no 按esc 输入":wq"退出...
2020-02-20 22:49:10
1579
原创 数组在堆还是栈
看以下代码: char *str(char ch[],int n) { char temp[80] = {0}; for (int i = 0; i < n; i++) temp[i] = ch[i]; return temp; } char *arr1=new char[3]; arr1 = arr("hello", 3); cout << arr1 <<...
2020-02-19 19:54:05
14219
1
原创 超详细的函数指针
函数指针基础 使用函数指针一般要实现: 1)获取函数地址 2)声明函数指针 3)使用函数指针调用函数 (1)获取函数地址:直接使用函数名(函数名就是地址),比如调用think()函数: show_array(think); (2)声明函数指针 int sum(int n); //(1式) ...
2020-02-19 17:03:28
269
原创 指针数组和数组指针
int *arr[10] 指针数组 (1)先看arr,先和"[10]"结合,说明arr是个数组; (2)前面是int* ,说明arr数组的元素是int*类型,即int指针。 double a=1.0; double b=2.0; double c=3.0; double *double_arr[3]={&a,&b,&c}; int (*arr)[10]数组指针 (1)先...
2020-02-17 11:08:10
218
原创 C++之数组作为参数
参数中的数组其实就是指针 比如有这样一个函数声明:int sum_array(int arr[], int n); 在我们调用时:int sum = sum_array( books, 100); 1)books为数组名,是数组第一个元素的地址,函数传递的是地址; 2)在声明中,改为:int sum_array(int *arr, int n);和原来是含义相同。 在显示数组的函数中,参数尽量用c...
2020-02-16 11:11:24
676
原创 C++学习笔记之指针和const
指向常量的指针和常量指针 const int * p(int和const位置交换是一样的) 首先,明白一个概念 – 指向常量的指针。比如:const int *pt; 这说明: pt是指向int型常量的指针 !!! pt只是个普通in型指针!!! 它的值 pt会改变,但是它指向的值不能变 ,注意区分它和常量指针。 int * const p常量指针 从右向左看,p为常量,且一个int*的...
2020-02-15 22:55:15
215
原创 c++学习笔记之简单文本输入和输出
文本输出 #include<iostream> //(1)文本输入输出必备头文件 #include<fstream> #include<string> using namespace std; void main() { //(2)创建输出流对象 ofstream ofs; //(3)打开输出流文件 //第一个参数:打开文件。若文件不存在,会在c++...
2020-02-14 16:24:21
1037
原创 C++学习笔记之数字输入及错误处理
数字循环输入及错误解决办法 我们在输入一些数字的时候通常当输入的不是相应的类型的时候,会输入错误如 int a[5]={0}; int i=0; while(i<5) { cin>>a[i]; i++; } 当我们输入的是一个字符的时候,必然会输入错误,此时 cin 返回错误,不做处理,程序会停止.若我们在此之前输入了几个有效数据,我们想得到这几个数据怎么办呢? //首先我们...
2020-02-14 14:26:48
1004
1
原创 C++学习笔记之指针和自由存储空间基础要点
指针 /*指针一个很大重要作用——间接改值*/ int a = 10; int* pa = &a; *pa = 22; cout << "a = "<<a << endl;//此时a的值为22 /*无论何种类型,指针大小一般为4*/ int *pa;//空指针,不建议,在此仅作为下面示例 double *pb; //sizeof(pa)...
2020-02-12 17:44:24
202
原创 C++学习笔记之String类及geltine()和get()使用
赋值、拼接和附加 #include<iostream> #include<string> using namespace std; int main() { char charr1[100] = "hi "; char charr2[100] = "csdn"; char charr3[100]; string str1 = "hello "; string st...
2020-01-31 10:06:32
1306
原创 C++学习笔记之数组创建和初始化
创建数组 数组创建声明指出以下这三点: (1)元素值的类型 ; (2)数组的名字 ; (3)数组元素的个数. 例: int array[ArraySize]; 注意:ArraySize的取值只能为以下几种: (1)普通整型常数,比如1,2等; (2)宏定义标识符 比如: #defi...
2020-01-30 21:29:56
741
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅