小成代码路的错误

news2024/12/21 19:18:29

文章目录

    • 计算长度使用左闭右开的方法
    • getline(解决输入空格问题和给一个输入的界限)
    • stoi(字符串转整形)
    • stoi(整型转字符串型)
    • reverse(反转函数)将字符串立志
    • 静成员变量在类外初始化;但是有特例:const static int类型可以在类内初始化;而const static char类型不能在类内实现初始化;
    • 一般的string类型中的capacity不包含'\0'
    • 类的初始化是顺序是和声明的顺序相同的;
    • 范围for函数;如果 在函数体内改变数组使用auto定义的变量;进行改变数组不会改变;
    • std内的容器的头文件的使用
    • clear()
    • 堆和栈的生长方向
    • 栈和堆的动态空间建立和释放
    • 3.new与malloc的属性区别
    • 4.类模板
    • 参数类型强转
    • 迭代器在g++环境下是指针;在其他条件下比一定是指针;(迭代器初始化多使用auto来定义)
    • 迭代器可以使用加法运算;+-数字都可;
    • 除了string类定义了流插入和流提取;其他类都没有定义;原因:其他类都额可以使用范围for等循环来实现;string因为有字符串所以必需要定义一个;
    • 异或知识点:将其第一操作数的每个位与其第二操作数的相应位进行比较。 如果其中一个操作数中的位为 0,而另一个操作数中的位为 1,则相应的结果位设置为 1。 否则,将对应的结果位设置为 0。
    • 当想只是使用类内的函数时;创建匿名对象;
    • 防止被重命名函数![在这里插入图片描述](https://img-blog.csdnimg.cn/8f4fc4679db94cf2aa43b488e159fdb2.png)
    • 0和另一个数异或的结果是这一个数;
    • stl中的cbegin()没什么用;原因:begin()这里有const的版本重命名函数
    • 扩容的写法:
    • size_type就是size_t;
    • 匿名对象具有常性;
    • 拷贝构造函数和 构造函数的隐式转换
    • 默认构造函数
    • 注意从后向前循环时间使用一个变量大于等于0时间;使用size_t类型会出错;需要使用强制类型转换将类型转位int类型;
    • new创建的数组如果太大就会抛异常
    • 抛异常
    • 迭代器类型的组成:
    • typedef会受到访问限定符的限制;
    • 内置类型也有默认构造函数
    • vector类型容器扩容后迭代器将无法使用;
    • 算法库的头文件:<algorithm>
    • 当一个类里面全部都是使用的是共有;就不使用class而是使用struct;
    • 类内函数不必按照使用顺序来进行定义;
    • const迭代器:
    • list 的->的实现
    • 函数内出现模板类去调用内嵌类型或静态成员变量;
    • 该函数可以使用传参数来进行实例化;
    • 将容器定义为模板,让编译器来识别是哪个容器;来进行函数操作
    • 各容器的定义的解读
    • linux的指令大部分改变的是文件的属性;
    • 文件内存包含:1.数据2.属性;
    • Linux的隐藏文件是以.来领先的;
    • linux指令:
    • Xshell 全屏的方法:ALT+回车
    • 清屏:使用clear;
    • std:stoi函数是将字符串转化为整形的函数;
    • 类模板和函数模板;:函数模板可以实例化;而类模板不可实例化;
    • 越界编译不会报错;
    • 无参构造函数创建对象时;不要写()直接创建对象即可;
    • 默认模板实参:
    • 内存池和内存适配器区别
    • 含有模板的函数指针编译器不被允许的;
    • 函数指针不可作为模板参数
    • 仿函数可以作为模板参数
    • 另外函数指针不可用来存储数据;但是仿函数可以实现数据的存储(原因:本质是一个对象,可以用来存储数据)
    • 类名字的首字母要大写
    • 函数模板的调用有两种方法:
    • 算法库内存在堆的库函数:
    • 类的定义和声明;
    • 模板的定义和声明不可以分离编译
    • 显示示例化
    • 之前保护和私有一样;
    • 右值和左值的区别:
    • C++ 中的const自定义类型的变量可以使用非const的成员函数;(这是C++流下的一个大坑)
    • const和*和&同时出现:
    • 二叉树 子节点和父节点的关系
    • 迭代器就是指针的的get函数(get函数的返回值是具有常性)返回值可以被赋值;
    • 反向迭代器的旧版和新版之间的区别

计算长度使用左闭右开的方法

在这里插入图片描述

getline(解决输入空格问题和给一个输入的界限)

这个函数,只有遇到换行时,才会停止;
定义:
在这里插入图片描述
示例:
空格问题
在这里插入图片描述
输入界限问题;
在这里插入图片描述

stoi(字符串转整形)

stoi(整型转字符串型)

reverse(反转函数)将字符串立志

静成员变量在类外初始化;但是有特例:const static int类型可以在类内初始化;而const static char类型不能在类内实现初始化;

一般的string类型中的capacity不包含’\0’

类的初始化是顺序是和声明的顺序相同的;

范围for函数;如果 在函数体内改变数组使用auto定义的变量;进行改变数组不会改变;

在这里插入图片描述
范围for就是刻板的拷贝
将for(auto e:s1)替换位的for(e=s1.begin;e<s1.end;e++)
这里的迭代器是固定的;所以使用时将迭代升器改变名字将无法实先for循环;

std内的容器的头文件的使用

这里的string类内函数不需要使用头文件;
正常情况下std命名空间内的容器都需要使用头文件;但是这里的string是特例不需要使用头文件就可以使用;

clear()

在这里插入图片描述

堆和栈的生长方向

堆向上生长;
栈向下生长;
对于栈来讲,生长方向是向下的,也就是向着内存地址减小的方向;对于堆来讲,它的生长方向是向上的,是向着内存地址增加的方向增长

栈和堆的动态空间建立和释放

堆是使用malloc()、calloc()、realloc()等函数动态分配的,而使用alloca()函数可以动态分配栈的内存空间,释放的时候由编译器自己释放。

3.new与malloc的属性区别

new是关键字,需要编译器支持;malloc是库函数,需要头文件支持。

4.类模板

在这里插入图片描述

参数类型强转

在这里插入图片描述

迭代器在g++环境下是指针;在其他条件下比一定是指针;(迭代器初始化多使用auto来定义)

迭代器可以使用加法运算;±数字都可;

除了string类定义了流插入和流提取;其他类都没有定义;原因:其他类都额可以使用范围for等循环来实现;string因为有字符串所以必需要定义一个;

异或知识点:将其第一操作数的每个位与其第二操作数的相应位进行比较。 如果其中一个操作数中的位为 0,而另一个操作数中的位为 1,则相应的结果位设置为 1。 否则,将对应的结果位设置为 0。

当想只是使用类内的函数时;创建匿名对象;

防止被重命名函数在这里插入图片描述

这里解决的是一个文件中已经有头文件;而第三个文件同时包含了这两个文件的问题;

0和另一个数异或的结果是这一个数;

stl中的cbegin()没什么用;原因:begin()这里有const的版本重命名函数

在这里插入图片描述

扩容的写法:

先将capacity变到想要括的大小;再使用new来将物理上的内存扩到这个大小;再将原来的内容拷贝过去;
在这里插入图片描述
这里可以将其写成一个reserve函数如果没有就写4;有就扩容二倍;
在这里插入图片描述

size_type就是size_t;

匿名对象具有常性;

即匿名对象不能修改;
匿名对象赋值普通对象,将会将和并拷贝构造和构造变为构造;
匿名对象赋值引用对象;引用对象需要使用const类型:原因:匿名对象就有常性;
但是两者的时间和作用域都会改变;

拷贝构造函数和 构造函数的隐式转换

默认构造函数

c++将其进行了升级;使内置类型和自定义类型都有了构造函数
内置类型的构造函数和自定义类型相同都是使用的类型加括号的方法:
int +名字+()——》这里的()里加参数;
在这里插入图片描述

注意从后向前循环时间使用一个变量大于等于0时间;使用size_t类型会出错;需要使用强制类型转换将类型转位int类型;

vector的insert插入时使用头插不需要强制类型转换原因: 这里使用的是地址;地址不会为0;

new创建的数组如果太大就会抛异常

在这里插入图片描述
new函数在不同的编译器失败的操作不同:
相对老的编译返回空指针;
较新的编译器会抛异常;

抛异常

使用try catch语句;
在这里插入图片描述

迭代器类型的组成:

在这里插入图片描述

typedef会受到访问限定符的限制;

直接放在类中是私有的不能使用;需要放在共有的中;

内置类型也有默认构造函数

int类型的默认初始化是将其赋值为0;
string类型默认初始化是将其赋值为空;

vector类型容器扩容后迭代器将无法使用;

解决方法:
记录长度;将新start+长度记新的迭代器
在这里插入图片描述

算法库的头文件:

当一个类里面全部都是使用的是共有;就不使用class而是使用struct;

类内函数不必按照使用顺序来进行定义;

const迭代器:

在这里插入图片描述

list 的->的实现

在这里插入图片描述

函数内出现模板类去调用内嵌类型或静态成员变量;

在这里插入图片描述
这里的添加typename是为了是为了让编译器在第一次检查每个函数时,勉强通过;再在示例化(函数被调用),再进行编译;

该函数可以使用传参数来进行实例化;

将容器定义为模板,让编译器来识别是哪个容器;来进行函数操作

在这里插入图片描述

各容器的定义的解读

在这里插入图片描述
当使用该定义来定义变量时:使用的是名字+<容器内部的数据类型>
如:vector

linux的指令大部分改变的是文件的属性;

文件内存包含:1.数据2.属性;

Linux的隐藏文件是以.来领先的;

linux指令:

pwd显示目录;
ls—(查找)可以查找当前文件也可以查找其他文件;(这里不会改变当前所在位置;
ls-l显示当前的详细文件内容——简写——》ll;这里的l是lot
mkdir—创建一个文件夹
cd—是双击的意思;这里配套相对路径或绝对路径
touch—创建文件;
ls-a显示隐藏的文件;(Linux中将隐藏文件的名字设置以.开头;
一个文件内都包含两个隐藏文件:一个是”.“的文件;另一个”…“的文件
**“.”是当前文件的按键;“…"是上一个文件建的按键;
cd.————————实现的是还在当前目录;
cd…————————实现的是返回到上一目录;
使用:
”.“在当前文件夹中实现一个程序的运行时;使用如下:
./文件名
相对路径:
./当前文件文档
…/上一文件夹中的另一个文件夹/该文件的文件或文档;
…/bin/a.txt
指令是在linux系统下用c语言写可执行程序;而这些程序都包含在
/usr/bin目录下
** cd-
————————返回上一个浏览的目录
which————查找该文件名字的地址;使用:which +” "+文件名;
alias———重命名文件名; 使用:alias+“新名字”+“=”+“ ‘原名字 ’ “
Linux中查找文件使用路径来进行查找
路径:
根目录:
路径分割符号:
在这里插入图片描述
该路径是多叉树结构;
在这里插入图片描述
Linux用户: root和其他用户;
家目录:这里和根目录不同,是/+家目录(如root)

** touch创建普通文件;如:test.c |test.file|test.txt
** stat
查看文档的详细性质;如时间 ,大小,地址;
** 属性内的时间**:
在这里插入图片描述
access时间这个时间是创立时间;
modify时间这个时间是内容的最近更改时间
charge时间这个时间是性质更改时间;

touch 的使用该文件的时间将被更改;
** -p直接创建多个文件(文件夹套文件夹)
在这里插入图片描述
** tree
使用树状结构来排列该文件夹的文件;
在这里插入图片描述
** rmdir** 删除空目录
** rm** 删除文档 (这个会弹出是否删除)

       ![在这里插入图片描述](https://img-blog.csdnimg.cn/4a73b9f4906540e2a03b8e0d3c1d9b20.png)

** rm-f** 强制删除;
** rm-r** 递归删除整个文建的内容;
** rm-fm强制删除整个文件的内容;
在这里插入图片描述
这个就linux的文件将全部删除;
8.man指令(字典)
./*删除当前目录下的所有文件;
** cp拷贝
在这里插入图片描述
cp-r将整个目录拷贝
在这里插入图片描述
** cp-r-f
强制整个拷贝
将整个目录的拷贝到t中;

** cat**查看普通文件的内容(。c文件)

** mv**
在这里插入图片描述

Xshell 全屏的方法:ALT+回车

清屏:使用clear;

  • List item

std:stoi函数是将字符串转化为整形的函数;

类模板和函数模板;:函数模板可以实例化;而类模板不可实例化;

越界编译不会报错;

无参构造函数创建对象时;不要写()直接创建对象即可;

默认模板实参:

和函数的默认实参相同;

template <typename T = int> class A;

内存池和内存适配器区别

allocator内存池container内存适配器
在这里插入图片描述
c++添加的构造函数
initializer list构造函数
在这里插入图片描述
在这里插入图片描述

含有模板的函数指针编译器不被允许的;

所以函数指针相较于反函数差;

函数指针不可作为模板参数

仿函数可以作为模板参数

另外函数指针不可用来存储数据;但是仿函数可以实现数据的存储(原因:本质是一个对象,可以用来存储数据)

类名字的首字母要大写

函数模板的调用有两种方法:

方法一:显示调用:使用<>将要传送的传过去;
方法二:自动推导
在这里插入图片描述

算法库内存在堆的库函数:

在这里插入图片描述

类的定义和声明;

类可以定义和声明分离;这里类的声明必须在类内存在;

模板的定义和声明不可以分离编译

原因:.h文件和.cpp文件进行运行函数没有实例化;还是模板(参数没有示例化)函数没有被分配内存;
这就导致函数调用时找不到函数地址;
解决:在cpp文件中进行实例化
在.h实现函数定义;(声明和定义放在一起

显示示例化

template+ 返回值+函数名+<类型>+(参数)template+即函数定义
函数模板的实例化
在这里插入图片描述
类模板的实例化
在这里插入图片描述

之前保护和私有一样;

继承以后;保护就有了意义

右值和左值的区别:

右值:是不可以取地址和别名的值;如变量名、解引用以后的指针;这里只可以使用const变量来进行取别名和指针;
左值:是可以取地址和别名的值;如字面常量、表达式返回值、函数返回值等

C++ 中的const自定义类型的变量可以使用非const的成员函数;(这是C++流下的一个大坑)

示例:
在这里插入图片描述
这里的end()返回的变量是临时对象;具有常性;所以在rbegin()中不可以将其进行–;

const和*和&同时出现:

const的指针的引用
在这里插入图片描述

二叉树 子节点和父节点的关系

在这里插入图片描述

迭代器就是指针的的get函数(get函数的返回值是具有常性)返回值可以被赋值;

反向迭代器的旧版和新版之间的区别

区别于*和->的重定义;和迭代器begin() end() rebegin() reend()这几个函数的定义;
旧版:
在这里插入图片描述
新版
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1121327.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FreeSWITCH 1.10.10 简单图形化界面12 - 注册IMS

FreeSWITCH 1.10.10 简单图形化界面12 - 注册IMS 0、 界面预览1、IMS注册-SIP中继基本设置界面2、IMS注册-SIP中继呼叫设置3、IMS中继-代理设置界面4、IMS注册-SIP中继状态界面5、IMS注册-SIP中继详细状态界面6、IMS注册-SIP中继代拨号码优先界面 FreeSWITCH界面安装参考&#…

Qt planeGame day10

Qt planeGame day10 Game基本框架 qt中没有现成的游戏框架可以用&#xff0c;我们需要自己搭框架首先创建一个QGame类作为框架&#xff0c;这个基本框架里面应该有如下功能&#xff1a;游戏初始化 void init(const QSize& siez,const QString& title);游戏反初始化(…

系统报错“由于找不到vcomp140.dll无法继续执行代码”的解决方案

在我们日常使用电脑的过程中&#xff0c;可能会遇到一些错误提示&#xff0c;其中之一就是“找不到vcomp140.dll”。这个错误可能让许多用户感到困扰&#xff0c;因为它可能影响到我们的电脑使用。那么&#xff0c;vcomp140.dll是什么意思&#xff1f;当我们遇到这个问题时&…

学习笔记2——Nosql

学习笔记系列开头惯例发布一些寻亲消息 链接&#xff1a;https://baobeihuijia.com/bbhj/contents/3/194205.html 跟学链接 跟学视频链接&#xff1a;https://www.bilibili.com/video/BV1S54y1R7SB/?spm_id_from333.999.0.0 &#xff08;建议有java基础的同学学习或者一直…

发挥设计模式单例模式的力量:从技术到社会的转变

文章目录 &#x1f31f; 如何将设计模式单例模式运用到社会当中&#x1f34a; 什么是单例模式&#x1f34a; 单例模式在现实生活中的应用&#x1f389; 数据库连接池&#x1f389; 日志管理器&#x1f389; 系统配置中心 &#x1f34a; 如何将单例模式应用于社会中&#x1f389…

【Unity程序技巧】公共Update管理器

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

hugo-stack for github

静态博客框架jekyll、hexo和hugo三者之间的区别与差异 博客生成器? 全名为静态网站生成器&#xff0c; 可在任意拥有主机功能的环境下寄存(托管)可直接配合域名进行全球访问 劣势: 每次更新网页必须重新生成整个网站编译速度&#xff08;单位&#xff1a;秒&#xff09; Jek…

Win下Eclipse安装

eclipse官网https://www.eclipse.org/downloads/ 软件介绍&#xff1a; Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。Eclipse 是 Java 的集成开发环境&#xff08;IDE&#xff09;&#xff0c;当然 Eclipse 也可以作为其他开发语言的集成开发环境&#xff0c;如…

为什么使用KT6368A蓝牙芯片用app连接,基本都在5分钟左右后断开

为什么我们自己的板子用KT6368A蓝牙芯片&#xff0c;用app连接&#xff0c;基本都是在5分钟左右后 断掉或者断开&#xff0c;什么原因。参考的原理图&#xff0c;是官方的图纸如下 遇到这样的问题&#xff0c;根据我们的经验&#xff0c;大概率是硬件问题&#xff0c;分析方法如…

深度好文:How to get started in C++!

Datawhale干货 作者&#xff1a;zclll&#xff0c;推荐&#xff1a;卢雨畋&#xff0c;Datawhale成员 在大家的不懈催更下&#xff08;hhh)&#xff0c;这篇文章终于和大家见面了。对于程序设计、软件开发而言&#xff0c;我都只是一个入门水平而已&#xff08;也许C略多一点&…

whatsapp的越狱特征检测

一、检测点 1、检测目录 opendir打开bin是否成功 2、检测模块 解析macho的header头获取加载的模块&#xff0c;获取进程的所有模块&#xff0c;判断是否包含如下模块&#xff1a;substrate,watusi,zdumper 3、检测文件 判定文件或是应用是否的路径是否存在 /Applications/Cydia…

单链表的相关操作(精简版..在修改中)

目录 前言&#xff1a; 哨兵位&#xff1a; 链表的概念 链表的相关操作&#xff1a; 链表的创建&#xff1a; 打印链表&#xff1a; 申请新节点&#xff1a; 链表的尾插&#xff1a; &#xff01;&#xff01;&#xff01;对于传参中二级指针的解释&#xff1a; 链表的…

[C国演义] 第十六章

第十六章 等差数列的划分最长递增子序列 等差数列的划分 力扣链接 子数组 ⇒ dp[i]的含义: yinums[i] 为结尾的所有子数组中的 等差数列数组最多的个数子数组⇒ 状态转移方程: 根据最后一个元素的构成 初始化: 涉及到 i-1, i-2 ⇒ 所以要初始化dp[0] 和 dp[1] 都初始化为 0…

一次不成功的抓包过程

想搞Android app抓包&#xff0c;简单的方法&#xff0c;已经不起作用&#xff0c;打开charles代理工具&#xff0c;抓不到我的目标app任何请求&#xff0c;搞了两三天&#xff0c;也没成功。 我的目标APP里&#xff0c;经过apk反编译出来&#xff0c;看到有libflutter.so文件&…

AM@导数的应用@二阶导数的应用@函数的性态研究@函数图形的绘制

文章目录 概念称呼说明驻点极值和极值点最值极值点和最值比较曲线的凹凸性凹凸性判定定理&#x1f47a;例证明 凹凸性和单调性无必然关系拐点寻找拐点&#x1f47a; 函数图形的绘制例 概念 本文讨论导数的应用:利用导数研究函数的性态相关定理主要通过Lagrange中值定理进行推导…

首篇大模型压缩论文综述

首篇大模型压缩综述来啦&#xff01;&#xff01;&#xff01; 来自中国科学院和人民大学的研究者们深入探讨了基于LLM的模型压缩研究进展并发表了该领域的首篇综述《A Survey on Model Compression for Large Language Models》。 Abstract 大型语言模型&#xff08;LLMs&a…

文件操作 IO

文件(File) 狭义的文件: 指的是硬盘上的文件和目录 广义的文件: 泛指计算机中很多软硬件资源(操作系统中把很多硬件和软件资源抽象成了文件, 按照文件的方式同意管理) 本章内容只讨论狭义的文件 路径 绝对路径: 以c: , d: 盘符开头的路径相对路径: 以当前所在的目录为基准(…

【问题思考总结】如何求椭圆的切线?【过椭圆外一点】

问题 今天做2009年数一的真题&#xff0c;发现第17题求切线十分难顶&#xff0c;我用的方法是切线和椭圆方程联立&#xff0c;还有切线斜率和椭圆上一点和远点斜率相乘等于-1的方法。 思考 经过思考后&#xff0c;我认为之前的那个属于是高中方法&#xff08;还不完全是&…

Prometheus接入AlterManager配置邮件告警(基于K8S环境部署)

文章目录 一、配置AlterManager告警发送至邮箱二、Prometheus接入AlterManager配置三、部署PrometheusAlterManager(放到一个Pod中)四、测试告警 注意&#xff1a;请基于 PrometheusGrafana监控K8S集群(基于K8S环境部署)文章之上做本次实验。 一、配置AlterManager告警发送至邮…

手把手入门Node框架Egg.js

0.介绍 Egg.js 是一个面向企业级应用开发的 Node.js 框架&#xff0c;它建立在 Koa.js 之上&#xff0c;提供了一种更简单、灵活的开发方式。Egg.js 提供了一些默认约定和最佳实践&#xff0c;可以帮助开发者快速构建可靠、可扩展的应用程序。 基于 Koa.js&#xff1a;Egg.js …