- 博客(44)
- 收藏
- 关注
原创 C++ new关键字的一些特殊用法
i.普通的new关键字申请内存空间时,是从系统的堆中分配的空间,申请所得到的空间的位置是根据当时的内存的实际使用情况来决定的。ii.placement new就是特殊情况下,需要在指定的特定内存去创建对象,就是定位放置new操作iii.用法:上述 ptr 就是指定内存首地址位置iv.定位new操作,既可以是栈上,也可以是堆上v.使用定位new定位生成对象时,会自动调用类Test的构造函数,但是由于对象的空间不会自动释放(因为实际上只是借用了别人的空间),所以必须显式调用类的析构函数,
2024-04-09 18:28:07 389
原创 黑马程序员C++课程的资源分享
看完了黑马程序员C++教程的全部。说实话入门挺合适的,但是距离工作感觉还是远远不够的,其中最深的就是到了C++的STL部分,包括做项目需要的多线程啊、网络编程啊啥的都还没有,我找了一下他们公开课上面C++的课程也没有这些相关的,希望多出些教程吧,还是非常感谢黑马程序员。关于学习C++,还有很长的一条路要走,在这次的基础课上的代码和项目我都上传到了GitHub,关于项目代码方面做了一些封装的优化以及老师上课说了但是没做的完善,仅供参考:C++基础部分代码C++核心部分代码C++提高编程部分:模板类
2022-05-17 09:04:07 1822 6
原创 关于C++中使用字符串常量与string相加遇到的问题
问题如图:这里可以看到当字符串常量"hello" 去对字符串seed中的第一个字符进行相加操作时,会出现错误值。而当指明"hello"的类型为字符串型,再进行相加操作,就会得到正确值。因为此前一直在写Java,习惯性就是进行"hello " + seed[0]这样的操作,到了C++这种操作就失效了,首先来查看一下在C++中,直接传入的一个字符串常量会被认定为什么类型:这表明了一个字符串常量传入时,会被C++默认认定为是一个char类型的常量指针。然后找到了官方文档:因为seed[0]被认定为一个字
2022-05-15 21:29:29 872 2
原创 KMP算法及其优化
KMP算法时间复杂度O(n + m)NFA:不确定性有穷状态自动机int *getNext(const char *t, int *len){ *len = strlen(t); int *next = (int *) malloc (sizeof(int) * (*len)); // next[i] = j : 以i位置结尾,所匹配到的最长前缀是j这个 位置 next[0] = -1; //匹配最长前缀不能包含自己,第一位的最长前缀为-1 for(int i = 1
2022-05-09 08:38:41 499
原创 六种字符串匹配算法详解(含代码演示)
1. Brute-Force算法2. Rabin-Karp Hash算法3. Kmp算法4. Kmp的优化算法5. Sunday算法6. Shift-And算法ps:字符串匹配其实是单模匹配问题1.Brute-Force 朴素匹配算法(暴力匹配)时间复杂度:O(n*m)//返回 文本串s中第一次查找到模式串t的位置int brute_force(const char *s, const char *t){ //扫描文本串的每一位 for(int i = 0; s[i];
2022-05-08 18:45:25 6785
原创 C++的前置和后置递增以及(a++)++的一些问题
具体解析看代码注释#include <iostream>using namespace std;class MyInteger { friend ostream& operator<< (ostream& out, MyInteger myInteger);private : int m_Num;public : MyInteger() { m_Num = 0; } //重载前置++ 返回引用是为了一直对一个数据进行递增操作 MyInt
2022-05-05 09:09:53 464
原创 巩固数组的一些练习题(含参考代码)
字符串题目描述 :输入一个字符串,将其中所有的大写和小写字母改成该字母的下一个字母,z 的下一个字母为 a。输入 输入一个不包含空格的字符串。字符串长度小于 50。输出 输出一行,为转换后的字符串。样例输入ABCDZ123abcdefz样例输出BCDEA123bcdefga#include<stdio.h>char str[55];int main(){ scanf("%s", str); for(int i = 0; str[i]; i++
2022-05-01 20:54:46 924
原创 六种排序算法详解(含代码演示)
1. 冒泡排序2. 选择排序3. 插入排序4. 基数排序5. 快速排序6. 归并排序1.冒泡排序时间复杂度:O(n^2)空间复杂度:O(1)**核心思路:**每次比较相邻的元素,将大的元素交换至后面,每一堂操作会将最大值“冒泡”到数组后面。操作次数=待排序数组长度-1代码演示:#include<stdio.h>#include <stdlib.h>#include <string.h>#define swap(a, b) {__typeof(
2022-04-28 21:02:36 375
原创 栈和队列详解(含代码演示)
1.栈栈是一种只能在一段进行插入和删除的线性数据结构,通常使用线性表来实现。栈满足 **后进先出(LIFO/ last in first out)**的特性由于栈不能像线性表一样随意进行插入删除,因此可以将栈视为一种功能受限的线性表。栈的管理结点和线性表的管理结点相同:顺序表实现栈:数据域(data)、栈的总容量(total)、栈的大小(len)链表实现栈:栈顶结点(头结点)的指针(*head)、栈的大小(len)(1)顺序栈的增删改查【顺序栈也可以使用和顺序表一样的扩容方式】#includ
2022-04-27 18:05:31 844
原创 线性表详解(代码演示)
1.顺序表顺序表是指用一段连续的地址,依次存放数据元素的线性数据结构,这种存储方式使得顺序表的物理结构与逻辑结构都是连续的。q1:这和平时再函数中定义的数组有什么区别?ans1:函数中的数组被存放在栈段中,而栈段有系统限制的大小【ulimit -s】。因此顺序表往往使用再堆段中操作管理动态数组的方式实现。(1)管理结点如果把数据结构比作仓库,数据元素比作货物,除了货物之外,还应该有货物的数量,货架的数量等信息。要体现这些信息,就需要“管理结点”。eg: 顺序表中,管理结点内部一般存放:数据域
2022-04-26 21:27:00 468
原创 C语言——学习笔记(全)
一、语言入门基础1.输出函数说明printf函数 头文件:stdio.h 原型:int printf(const char *format, …); format:格式控制字符串 …:可变参数列表 返回值:成功输出字符的数量2.输入函数说明scanf函数 头文件:stdio.h 原型:int scanf(const char *format, …); format:格式控制字符串 …:可变参数列表 返回值:成功读入的参数个数int a = sca
2022-04-23 10:42:47 8330 4
原创 第四届传智杯全国大学生IT技能大赛(练习题)——纯暴力题解
小菜鸡一枚,大佬们全部加起来的时间一分多种,我的加上罚时有十分钟了,纯暴力,发出来仅供参考T211364 [#4练习赛]符合条件的数这一题本来想”造数“的,写着写着自己给想乱了,然后就改写了暴力【用时:00:26】#include <iostream>using namespace std;int num(int temp){ int num = 0; while(temp > 0){ num = (temp % 10 == 3) ? (++nu
2021-11-21 10:33:00 5825
原创 洛谷题单代码参考【入门3 循环结构】
洛谷题单代码参考【入门3 循环结构】找最小值分类平均一尺之棰数字直角三角形阶乘之和【普及题,高精度算法–>大整数乘法和加法的运用】计数问题级数求和金币数列求和质数口袋 (普及题)回文质数(普及题)小玉在游泳数字反转月落乌啼算钱(斐波那契数列)求极差/最大跨度值最长连号质因数分解求三角形打分(普及题)Davor津津的存储计划#include <iostream>using namespace std;int num[1005] =
2021-10-28 15:10:32 319
原创 洛谷题单代码参考【入门2 分支结构】
洛谷题单代码参考【入门2 分支结构】数的性质闰年判断Apples洛谷团队系统肥胖问题三位数排序月份天数不高兴的津津买铅笔ISBN号码 (普及题)小玉家的电费小鱼的航程(改进版)三角函数陶陶摘苹果三角形分类(普及题)【注意先判断是否为三角形,再去判断是哪一类或两类或三类三角形】ABC#include <iostream>using namespace std;int main(){ int n, flag = 1; cin >> n
2021-10-27 09:37:23 219
原创 洛谷题单代码【入门1 顺序结构】
洛谷题单代码【入门1 顺序结构】A+B Problem超级玛丽游戏苹果采购字母转换数字反转再分肥宅水小鱼的游泳时间小学数学N合一三角形面积10.小玉买文具Apples Prologue对角线上学迟到成绩#include <iostream>using namespace std;int main(){ int a, b; cin >> a >> b; cout << a + b <&l
2021-10-26 18:33:18 201
原创 C++PrimerPlus第十章编程练习答案参考
//bank.h#ifndef BANK_H_#define BANK_H_#include<string>class Bank{ private: std::string m_name; std::string m_id; double m_deposit; public: Bank(); Bank(std::string name, std::string id, double deposit); void show() const; vo...
2020-05-26 21:39:58 613 2
原创 C++单链表增、删、插、改、查(基础版)
这里分了四部分,不喜欢一堆堆代码挤在一起的,开了个项目写的这些代码,我觉得是很通俗易懂的那种代码了,具体链表实现的讲解,以及对指针的运用,请移步各大教学视频/文档代码的具体解释请看注释哟~1.List.h#ifndef LIST_H_#define LIST_H_const int size = 40;//数据域struct Data{ char name[size]; int account;};//结点struct Node{ Data data; Node *nex
2020-05-26 19:43:21 479
原创 C++Primer Plus第九章编程练习答案参考
这一章感觉看题目意思就老费劲了,要理解半天1.//头文件golf.h#ifndef GOLF_H#define GOLF_Hconst int Len = 40;struct golf{ char fullname[40]; int handicap;};void setgolf(golf &g, const char *name, int hc);int setgolf(golf &g);void handicap(golf &g, int hc);
2020-05-17 20:21:59 276
原创 C++ Primer Plus第八章编程练习答案参考
这一章的题目相对来说较少,但是个人认为也比前面的稍难了,还有一道题我做的时候查过别人的答案,发现都是文不对题的,待会会标注出来。1.#include<iostream>using namespace std;int count=0;void show(const char *str, int n=0);int main(){ const char* str = "Good night~"; show(str); show(str,10); show(str,-2);
2020-05-12 09:26:03 467
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人