![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
c++
文章平均质量分 76
c++相关知识
酒馆店小二
给岁月以文明,给时光以生命
展开
-
图解KMP算法(C++实现)
需求提出给定一个模式串 pattern = “ddywabcdababcdabd” 和一个子串 substr = “abcdabd”,需判断 pattern 中是否包含 substr,如果包含,返回 substr 第一次在 pattern 中出现的位置;如果不包含,返回 -1(常用手段)赶时间的小伙伴可以拿去应急了。原创 2022-02-17 23:13:53 · 507 阅读 · 0 评论 -
C++链表01:移除链表元素
1.认识链表什么是链表,链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。链接的入口节点称为链表的头结点也就是head。链表的类型有三种,如下:单链表中的节点只能指向节点的下一个节点。双链表:每一个节点有两个指针域,一个指向下一个节点,一个指向上一个节点。双链表 既可以向前查询也可以向后查询。循环链表,顾名思义,就是链表首尾相连。循环链表可以用来解决约瑟夫环问题。2.原创 2022-03-18 17:32:06 · 2285 阅读 · 1 评论 -
C++链表03:设计链表
1.背景大家好,我是酒馆店小二。力扣707.设计链表在链表类中实现这些功能:get(index):获取链表中第 index 个节点的值。如果索引无效,则返回-1。addAtHead(val):在链表的第一个元素之前添加一个值为 val 的节点。插入后,新节点将成为链表的第一个节点。addAtTail(val):将值为 val 的节点追加到链表的最后一个元素。addAtIndex(index,val):在链表中的第 index 个节点之前添加值为 val 的节点。如果 index 等于链表的长原创 2022-03-24 16:52:58 · 242 阅读 · 0 评论 -
C++链表02:反转链表
1.背景大家好,我是酒馆店小二。力扣206.翻转链表。题意:反转一个单链表。示例:输入: 2->3->4->5->NULL输出: 5->4->3->2->NULL2.迭代如图,定义pre指针,初始化为 nullptr;定义cur指针,指向头结点;定义temp指针,指向cur->next节点,为什么要指向这个节点?因为接下来要改变cur->next的指向,将cur->next指向pre;重复执行上述操作,不断后移p原创 2022-03-23 17:06:16 · 4523 阅读 · 0 评论 -
c++实现常见的字符串操作函数
1.背景大家好,我是酒馆店小二。字符串操作函数有很多,用的也很方便,秉持着知其然并知其所以然的想法,来实现下这些常见的函数。2.strcpy()把从 src 地址开始且含有’\0’结束符的字符串复制到以 dest 开始的地址空间,返回值的类型为 char*。#include <iostream>#include <assert.h>/** Author: 酒馆店小二* Description: 字符串操作函数* Date: 2022-03-11 10:12:25原创 2022-03-11 11:21:10 · 1409 阅读 · 0 评论 -
C++的四种强制转换
1.背景大家好,我是酒馆店小二。C风格的强制转换(Type Cast)容易理解,不管什么类型的转换都可以使用使用下面的方式。TypeName res = (NewTypeName)ans; 当然,C++也是支持C风格的强制转换,但是C风格的强制转换可能带来一些隐患,让一些问题难以察觉。所以C++提供了一组可以用在不同场合的强制转换的函数。2.const_cast 常量转换const_cast用于强制去掉不能被修改的常数特性,其去除常量性的对象一般为指针或引用。用法:const_cast<原创 2022-03-10 19:02:52 · 14233 阅读 · 2 评论 -
C/C++中sizeof()计算练习题
1.sizeof()sizeof() 操作符的结果类型为 size_t,计算的是分配空间的实际字节数;sizeof() 是运算符,可以以类型、函数做参数;sizeof() 是在编译的时候就将结果计算出来了,结果是类型所占空间的字节数,所以用数组名做参数计算的是整个数组的大小。2.strlen()strlen() 结果类型也是 size_t,但 strlen() 计算的是空间中字符的个数,不包括 ‘\0’;strlen() 是函数,只能以 char* (字符串)做参数,而且,一定要以 ‘\0’ 结原创 2022-03-08 21:30:33 · 900 阅读 · 0 评论 -
C/C++查看机器的大小端
背景大端是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中int data = 0x12345678;// 0x12 是高字节,若它在内存的低地址中,则这个机器就是大端模式小端是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中int data = 0x12345678;// 若 0x12(高字节) 在内存的高地址中,则这个机器就是小端模式实现指针法和共用体法均可实现。#include <iostream>/**原创 2022-03-03 21:49:39 · 517 阅读 · 0 评论 -
C++11中auto的推导规则
auto背景在 C++11 之前的版本(C++98 和 C++ 03)中,定义变量或者声明变量之前都必须指明它的类型,比如 int、char 等;但是在一些比较灵活的语言中,比如 C#、JavaScript、PHP、Python 等,程序员在定义变量时可以不指明具体的类型,而是让编译器(或者解释器)自己去推导,这就让代码的编写更加方便。C++11 为了顺应这种趋势也开始支持自动类型推导了!C++11 使用 auto 关键字来支持自动类型推导。auto可以让编译器在编译期间就推导出变量的类型。auto原创 2022-02-26 11:26:47 · 802 阅读 · 2 评论