
C++
一只小小雪
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
反转单链表
力扣206题反转一个单链表。解题思路:具体代码:ListNode* reverseList(ListNode* head) { ListNode* prev=nullptr; ListNode* curr=head; while(curr) { ListNode* next=curr->next; curr->next=prev; prev=curr原创 2021-04-15 20:11:54 · 121 阅读 · 0 评论 -
旋转链表
力扣61题给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。解题思路-----闭合为环:1、计算出链表的长度n;2、找到链表的最后一个节点,使其指向链表的头节点;3、向右移动k个位置,当k>=n时,相当于移动k%n个位置,计算断开的位置-----在原链表第n-k%n个节点后面断开,新链表的最后一个节点就是原链表的第n-k%n个节点4、当k为0,或者原链表的头节点为空,或者原链表只有一个节点,直接返回原链表具体代码:ListNode* rotateRig原创 2021-04-15 19:43:16 · 97 阅读 · 0 评论 -
搜索旋转排序数组
力扣33题整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。给你 旋转后 的数组 nums 和一原创 2021-04-13 11:24:52 · 148 阅读 · 0 评论 -
C++指针
文章目录声明和初始化指针使用new分配内存使用delete释放内存使用new创建动态数组数组和指针声明和初始化指针声明指针:方式一:typeName * pName;int* ptr;用这种方式声明指针后必须要对指针进行初始化后才能使用。方式二:int higgens = 5;int* pt = &higgens;这种情况初始化的是指针,pt和higgens指的同一个地址。使用new分配内存通用格式:typeName* pointer_name = new typeNa原创 2020-09-26 23:51:06 · 397 阅读 · 0 评论 -
C++字符串
字符串常量C风格的字符串是将一系列用单引号引起来的字符常量存储在char数组中,以空字符“\0"结尾,用来标记字符串的结尾。例如:char a[5] = {'a','s','d','w','\0'};C++中的字符串是用双引号括起来的一串字符,不需要显示地写出空字符"\0"来标记字符串的结尾,但是在计算字符串的字节数时要加上末尾的空字符。例如:char fish[] = "Bubbles";这种字符串成为字符串常量。字符串常量不能与字符常量互换。字符串输入从键盘输入字符串可以用cin,但是ci原创 2020-08-10 00:10:52 · 205 阅读 · 0 评论 -
C++数组的初始化
只有在定义数组时才能使用初始化,以后就不能使用了,也不能将一个数组赋值给另一个数组。初始化数组时,值可以少于数组的元素数目,即对一部分元素赋值,另一部编译器会设置为0.例如:int cards[4] = {3,6,8,10};int hand[4];hand[4] = {5,6,7,9}; //错误hand = cards;//错误float h[5] = {5.0, 2.5};//只对前两个元素赋值,后三个元素初始化为0long totals[500] = {0};如果初始化数组时方括号为原创 2020-08-09 23:34:24 · 2662 阅读 · 0 评论 -
C++数据类型转换
C++程序运行过程中某些情况下会自动进行类型转换,如:将一种算术类型的值赋值给另一个算术类型的变量时;表达式中包含不同的类型时;将参数传递给函数时。一、初始化和赋值时进行的转换long so_long;short thirty = 10;so_long = thirty;在这个程序中,thirty的值扩展为long值,扩展后得到一个新值,这个值被存储在so_long中,而thirty的内容不变。这样做并不会改变这个值,只是占用更多的字节。低精度的值赋值给高精度的变量时不会出现转换问题,原创 2020-08-09 23:08:33 · 1965 阅读 · 0 评论 -
打印奇数行的*菱形
输入整数n,打印高度为2n-1的菱形int main(){ int i, j, n, k, m = 0; scanf("%d", &n); //打印高度为2*n-1 的*菱形 //先打印上半部分 for (j = 1; j <= n ; j++, m++) { for (i = 0; i < n - 1 - m; i++) printf(" ");//...原创 2019-10-20 11:32:07 · 1208 阅读 · 0 评论 -
C++中指向不同数据类型的指针的地址变化情况
定义一个指向char类型的指针p1和一个指向int型的指针p2,char占一个字节,int 占4个字节,%lx是输出的16进制的数 unsigned char* p1; int *p2; p1 = (unsigned char*)0x801000; p2 = (int *)0x810000; printf("%lx,%lx\n", p1 + 5, p2 + 5);根据上述程序,p1的...原创 2019-10-20 11:04:54 · 772 阅读 · 0 评论 -
C++中子类基类的构造函数和析构函数的调用
构造函数C++中通常用构造函数来对对象中的数据成员进行初始化,构造函数与类名同名。构造函数没有返回值,只对对象进行初始化。在建立对象时自动调用构造函数,每建立一个对象就调用一次构造函数。析构函数析构函数的作用与构造函数相反。名字也与类名相同,只是在类名前加一个“~”符号。当对象的生命周期结束时,释放对象前自动调用析构函数。静态局部变量在main函数结束时或者调用exit()函数结束程序时,...原创 2019-10-20 10:48:06 · 4332 阅读 · 0 评论 -
C++中的虚函数和子类基类指针的相互转换
C++中的虚函数和子类基类指针的相互转换虚函数虚函数是用来动态实现多态机制的一种方式,用基类指针指向子类对象,调用子类中的成员函数,实现多态。在基类中声明成员函数时,在前面加上virtual关键字,例如:virtual void print()定义基类class A{public: virtual void print() { cout << 'A' <...原创 2019-10-19 21:58:25 · 848 阅读 · 0 评论