自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

清风彬的博客

梦想进行时

  • 博客(78)
  • 收藏
  • 关注

原创 什么是回调函数?

回调就是一种利用函数指针进行函数调用的过程。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,就说这是回调函数。

2022-04-12 18:40:01 7020

原创 校招C++要学到什么程度?

针对正在进行时的校招,我就来周期性更新一下作为一名C++开发工程师要掌握的知识,大致包含如下部分:1、C++基础2、计算机网络3、操作系统4、网络编程5、数据结构与算法6、MySQL数据库7、项目/开源项目C++基础:1、面向对象的三大特性:封装、继承、多态封装:就是把客观事物封装成抽象的类,可以使某个属性只能被当前类使用,从而避免被其他类或对象进行操作——保证了安全性。也可以让使用者不必了解具体类的内部实现细节,而只需通过提供给外部的访问接口来访问类中的属性和方法——简..

2021-09-10 12:01:55 2611 1

原创 C++——模板

模板模板是C++支持参数化多态的工具,使用模板可以为类或者函数声明一种模式,使类中的数据或者函数的参数、返回值取得任意类型。模板是泛型编程的一种基础。主要有函数模板和类模板。1.函数模板函数模板概念:函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本。函数模板格式:template<typename T1, typename T2,…,typename Tn>返回值类型 函数名(参数列表){}template<

2021-04-13 21:31:57 304 3

原创 关于野指针Wild Pointer!

1.野指针的概念概念: 野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的);相当于指针指向非法的内存空间。指针变量在定义时如果未初始化,其值是随机的,指针变量的值是别的变量的地址,意味着指针指向了一个地址是不确定的变量,此时去解引用就是去访问了一个不确定的地址,所以结果是不可知的。2.野指针产生原因:指针变量未初始化任何指针变量刚被创建时不会被自动置为NULL,它的缺省值是随机的,所以这块内存,所以指针变量在创建时,要么初始化让它指向一块合法的内存,要么置为NULL。#in

2021-04-04 21:18:15 433

原创 指针-数组-引用概念与区别!

一、指针在计算机科学中,指针(Pointer)是编程语言中的一个对象,指针是个变量,存放内存单元的地址(编号)。该地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。#include <stdio.h>int main(){ int a = 10;//在内存中开辟一块空间 int *p = &a;//这里我们对变量a,取出它的地址,可以使用&a

2021-04-04 20:39:09 517

原创 继承组合区别以及优缺点

继承和组合继承是一种is-a的关系。也就是说每个派生类对象都是一个基类对象。组合是一种has-a的关系。逻辑上A是B的“一部分”(a part of),但是不允许B从A派生,而是要用A和其它东西组合出B优先使用对象组合,而不是类继承 。继承优点:继承允许根据基类的实现来定义派生类的实现。这种通过生成派生类的复用通常被称为白箱复用(white-boxreuse)。术语“白箱”是相对可视性而言:在继承方式中,基类的内部细节对子类可见 。容易进行新的实现,因为其大多数可继承而来。 易于修改或扩展那

2021-04-04 19:42:20 1818

原创 C/C++语法特性及内存管理常见问题

1.C/C++语言区别:C语言是一种结构化语言,面向过程,基于算法和数据结构,所考虑的是如何通过一个过程或者函数从输入得到输出;C++是面向对象,基于类、对象和继承,所考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题,通过获取对象的状态信息得到输出或实现过程控制。2.malloc/free和new/delete的区别是什么:共同点:都是从堆上申请空间,并且需要用户手动释放。不同点:malloc和free是函数,new和delete是操作符malloc申请的空间不会初始化,ne

2021-04-04 19:16:12 186 2

原创 怎么解决vs2013代码运行结果闪退的问题?

1.首先,这是一个随便的一行代码。按F5运行,哦呦??结果一闪而过,真是太气人了。怎么解决这个问题呢?2.最简单的方法就是在return 0;前加一句getchar();这样运行结果就不会一闪而过了。

2021-03-23 21:11:52 406 1

转载 C/C++超详细的关键字大全!

上表为C++98/03中的63个关键字,红色部分为C语言中的32个关键字。下边是对每个关键字的详解:1. asmasm (指令字符串):允许在 C++ 程序中嵌入汇编代码。2. autoauto(自动,automatic)是存储类型标识符,表明变量"自动"具有本地范围,块范围的变量声明(如for循环体内的变量声明)默认为auto存储类型。3. boolbool(布尔)类型,C++ 中的基本数据结构,其值可选为 true(真)或者 false(假)。C++ 中的 bool 类型可以和 int .

2021-03-23 18:19:43 11720 2

原创 下列sql语句中哪条语句可为用户zhangsan分配数据库userdb表userinfo的查询和插入数据权限

下列sql语句中哪条语句可为用户zhangsan分配数据库userdb表userinfo的查询和插入数据权限(A)。A: grant select,insert on userdb.userinfo to’zhangsan’@‘localhost’B:grant’zhangsan’@'localhost’to select,insert for userdb.userinfoC:grant select,insert on userdb.userinfo for’zhangsan’@‘localhos

2021-03-22 18:12:36 1498

原创 事务的ACID特征——原子性/一致性/隔离性/持久性

下列哪个特性与此事相关:已落实的事务会保证所有操作均已完成,并且在事务回滚中,所有操作产生的影响均已得到恢复?1.隔离性2.原子性 √3.一致性4.持久性原子性:事务是一个不可分割的整体,为了保证事务的总体目标,事务必须具有原子性,即当数据修改时,要么全执行,要么全不执行,即不允许事务部分的完成,避免了只执行这些操作的一部分而带来的错误。原子性要求失误必须被完整执行。一致性:一个事务执行之前和之后,数据库数据必须要保持一致性状态。数据库的一致性状态应该满足模式锁指定的约束,那么

2021-03-22 18:02:42 655

原创 在手机开发中常用的数据库是什么?

在手机开发中常用的数据库是 (A)A:SQLiteB:OracleC:Sql ServerD:Db23SQLite:是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#

2021-03-22 17:57:17 4171

原创 牛客网——执行以下SQL,下面哪个名字会被查询出来( )

执行以下SQL,下面哪个名字会被查询出来( )Select firstname from stafflistwhere firstname like'_A%'A:AllenB:CLARKC:JACKSOND:DAVID模糊查询_:代表的是任意单个字符%:任意长度的字符串_A%代表返回第二个单词为A的任意字符串,选项中C符合,所以答案选C。...

2021-03-22 17:49:11 1407

原创 牛客网——athletes 表包含运动员姓名,年纪和代表国家。下面哪个查询可以找出代表每个国家最年轻的运动员情况?

athletes 表包含运动员姓名,年纪和代表国家。下面哪个查询可以找出代表每个国家最年轻的运动员情况?A:SELECT name, country, age FROM athletes WHERE (country, age) IN (SELECT country, min(age) FROM athletes GROUP BY country)B:SELECT name, country, age FROM athletes WHERE (country, age) IN (SELECT min(

2021-03-22 17:41:20 995

原创 SQL六大约束!!一点就通

SQL六大约束:昨天看到这个题,那么什么是SQL约束???我来给大家详细介绍一下SQL六大约束,希望对大家有所帮助!SQL 约束:约束:是数据库中保证数据完整性 的方法。约束用于限制加入表的数据的类型。可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)。什么是数据完整性?1.实体完整性例如:每个表中有一个必须要指定的字段2.区域完整性针对表中的某个字段进行特殊化限制3.参照完整性表与表之间的一种特殊化关联

2021-03-21 16:13:44 3159 4

原创 骆驼命名法——C++实现

题目描述从C/C++转到Java的程序员,一开始最不习惯的就是变量命名方式的改变。C语言风格使用下划线分隔多个单词,例如“hello_world”;而Java则采用一种叫骆驼命名法的规则:除首个单词以外,所有单词的首字母大写,例如“helloWorld”。请你帮可怜的程序员们自动转换变量名。输入描述:输入包含多组数据。每组数据一行,包含一个C语言风格的变量名。每个变量名长度不超过100。输出描述:对应每一组数据,输出变量名相应的骆驼命名法。输入hello_worldnice_to_mee

2021-03-18 20:39:21 822

原创 C语言关键字你知道几个?

C语言关键字大全关键字的基本概念:被c语言赋予了特殊的含义的单词关键字特征:全部都是小写注意:关键字不能用做变量名ANSI C标准C语言共有32个关键字:数据类型关键字(12个)char,short,int,long,float,double,unsigned,signed,struct,union,enum,void控制语句关键字(12个)if,else,switch,case,default,for,do,while,break,continue,goto,return存储关键字(5

2021-03-16 09:12:39 1911 4

原创 网络七层协议OSI

OSI网络七层协议(Open System Interconnection),简称OSI,是一个开放性的通行系统互连参考模型,OSI模型有7层结构,每层都可以有几个子层。 OSI的7层从上到下分别是: 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层其中高层,即7、6、5、4层定义了应用程序的功能,下面3层,即3、2、1层主要面向通过网络的端到端的数据流。...

2021-02-03 00:05:05 333 1

原创 牛客网——素数

题目:输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。输入描述:输入有多组数据。每组一行,输入n。输出描述:输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出-1。示例1输入100输出11 31 41 61 71代码如下:#include <iostream>using namespace s

2021-02-02 20:57:41 288

原创 牛客网——最难的问题

[编程题]最难的问题NowCoder生活在充满危险和阴谋的年代。为了生存,他首次发明了密码,用于军队的消息传递。假设你是军团中的一名军官,需要把发送来的消息破译出来、并提供给你的将军。消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息原文中的每个字母A 都分别替换成字母F),其他字符不 变,并且消息原文的所有字母都是大写的。密码中的字母与原文中的字母对应关系如下。密码字母:A B C D E F G H I J K L M N O P Q R S T U V W

2021-01-31 18:30:51 316

原创 Linux网络基础(一)

网络基础1:1.网络发展史网络的划分:局域网,城域网,广域网;互联网-因特网;以太网;令牌环网IP地址:在网络中唯一标识一台主机IPV4:uint32_t类型的整数-DHCP/NATIPV6:uin8_t ip[16];在网络中的每一条数据都会包含两个元素:源端IP地址-对端IP地址PORT端口:在主机上唯一标识的一个网络通信进程;uint16_t类型的整数:在网络中的每一条数据都会包含两个元素:源端端口-对端端口在一台主机上,一个端口只能被一个进程占用,一个进程可以使用多个端口。协

2021-01-29 22:40:03 153

原创 算法——猴子分桃

题目描述:老猴子辛苦了一辈子,给那群小猴子们留下了一笔巨大的财富——一大堆桃子。老猴子决定把这些桃子分给小猴子。第一个猴子来了,它把桃子分成五堆,五堆一样多,但还多出一个。它把剩下的一个留给老猴子,自己拿走其中的一堆。第二个猴子来了,它把桃子分成五堆,五堆一样多,但又多出一个。它把多出的一个留给老猴子,自己拿走其中的一堆。后来的小猴子都如此照办。最后剩下的桃子全部留给老猴子。这里有n只小猴子,请你写个程序计算一下在开始时至少有多少个桃子,以及最后老猴子最少能得到几个桃子。输入描述:输入包括多组

2021-01-29 00:03:21 535 1

原创 数组-奇数位上都是奇数或者偶数位上都是偶数(牛客网)

题目描述:给定一个长度不小于2的数组arr。 写一个函数调整arr,使arr中要么所有的偶数位上都是偶数,要么所有的奇数位上都是奇数上。 要求:如果数组长度为N,时间复杂度请达到O(N),额外空间复杂度请达到O(1),下标0,2,4,6…算作偶数位,下标1,3,5,7…算作奇数位,例如[1,2,3,4]调整为[2,1,4,3]即可程序代码如下:class Solution {public: /** * 奇数位上都是奇数或者偶数位上都是偶数 * 输入:数组arr,长度大

2021-01-28 23:34:07 380 1

原创 通常所说的“存储保护“的基本含义

通常所说的"存储保护"的基本含义是(C)。防止存储器硬件受损防止程序在内存丢失防止程序间相互越界访问防止程序被人偷看什么是存储保护:在采用虚拟存储技术的存储系统中,一个多任务的操作系统经常将多个不同的程序同时调入主存执行,因此,首先需要保证这些程序间不会相互覆盖,并且,一个程序不能访问其他程序的数据以及不是分配给他的主存区域。其次,一个程序出错不会破坏其他用户程序和系统程序。通过一些限制方式保护主存中程序的技术被称为存储保护。简单的说,存储保护就是对主存中的程序和数据进行保护。为了降低开

2021-01-28 20:17:02 12261

原创 博客项目(一)

基于 C++ 的博客系统重要知识点简单的Web服务器设计能力C/C++ 操作 MySQL 数据库数据库设计Restful 风格 APIjson 和 jsoncpp 的使用强化 HTTP 协议的理解cpp-httplib 的使用和原理正则表达式Postman 工具的使用boost 的使用前端页面的开发方法和技巧(免费模板 + bootstrap + Vue.js)使用 Editor.md Markdown编辑器软件测试的基本思想和方法整体架构:博客服务器对博客的增删改查

2021-01-28 00:35:13 1204 5

原创 简述什么是LWP?

LWP轻量级进程:在计算机操作系统中,轻量级进程(LWP)是一种实现多任务的方法。与普通进程相比,LWP与其他进程共享所有(或大部分)它的逻辑地址空间和系统资源;与 线程 相比,LWP有它自己的进程标识符,优先级,状态,以及栈和局部存储区,并和其他进程有着父子关系;在大多数系统中,LWP与普通进程的区别也在于它只有一个最小的执行上下文和调度程序所需的统计信息,而这也是它之所以被称为轻量级的原因。...

2020-12-09 21:50:02 6479

原创 轻量级进程ID与进程ID之间的区别

在Linux下,线程又被称为轻量级进程。每一个用户态的线程,在内核中都对应一个调度实体,也拥有自己的进程描述符(task_struct结构体)。 没有线程之前,一个进程对应内核中一个进程描述符,对应一个进程ID。但是引入线程的概念之后,一个用户进程下管辖N个用户态线程。每个线程作为一个独立的调度的实体,在内核态中都有自己的进程描述符,进程和内核描述符一下变成了1:N的关系。POSIX标准又要求同一进程中的线程调用getpid函数时返回相同的进程ID, 于是Linux内核就引入了线程组的概念。多线程的进程,

2020-12-09 21:48:29 505 1

原创 计算日期到天数转换!

题目描述根据输入的日期,计算是这一年的第几天。。测试用例有多组,注意循环输入输入描述:输入多行,每行空格分割,分别是年,月,日输出描述:成功:返回outDay输出计算后的第几天;失败:返回-1示例:输入2012 12 31输出366#include<iostream>using namespace std;int main(){ int monthday[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30,

2020-12-09 20:18:02 205

原创 什么是僵尸/孤儿/守护(精灵)进程???

Z(zombie)-僵尸进程1.僵尸进程概念:僵尸进程指的是处于僵尸状态的进程。僵尸状态(Zombies)是一个比较特殊的状态。当子进程退出并且父进程没有读取到子进程退出的返回代码时就会产生僵尸进程。僵尸进程会以终止状态保持在进程表中,并且会一直在等待父进程读取退出状态代码。2.僵尸进程危害:会造成资源泄漏!!3.如何解决:父进程通过进程等待的方式,回收子进程资源,获取子进程退出信息孤儿进程1.孤儿进程概念:父进程先于子进程退出,子进程就称之为“孤儿进程”2.孤儿进程特性:让出终端,

2020-11-29 22:21:46 324

原创 Linux——进程概念

1.冯诺依曼体系结构现代计算机的硬件体系结构:(包含五大硬件单元)1.输入设备:采集收据,包括键盘, 鼠标,扫描仪, 写板等2.输出设备:进行数据输出,比如显示器,打印机3.存储器(内存):进行中间数据缓冲4.运算器:进行数据运算5.控制器:进行设备控制(运算器+控制器=CPU中央处理器)所有设备都是围绕存储器工作的,外设(输入或输出设备)要输入或者输出数据,只能写入内存或者从内存中读取。2.操作系统(Operator System)概念:任何计算机系统都包含一个基本的程序集合,称为操

2020-11-29 18:33:12 123

原创 Linux——常用工具

1.Linux的常用工具:软件包管理工具,编辑器,调试器,项目自动化构建工具,项目版本管理工具。2.软件包管理工具:yum1.查看软件包:yum list / yum search;2.安装软件包:yum install package_name;3.卸载软件包:yum remove3.编辑器:vim操作模式:一共有12种,常用的有三种:普通/插入/底行模式切换:普通->插入:-iaoIAO普通->底行:-:其他->普通:-ESC底行模式下的常见操作::w——保

2020-11-29 17:21:36 2864

原创 Linux——操作系统下的权限

Linux下有两种用户:1.超级用户(root):可以再linux系统下做任何事情,不受限制2.普通用户:在linux下做有限的事情。超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。命令:su [用户名]功能:切换用户。例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 suroot(root可以省略),此时系统会提示输入root用户的口令。文件权限的认识:1.文件访问者的分类(人):文件和文件目录的所有者:u

2020-11-29 16:06:16 218

原创 关于c++的inline关键字,以下说法正确的是()

关于c++的inline关键字,以下说法正确的是()A:使用inline关键字的函数会被编译器在调用处展开B:头文件中可以包含inline函数的声明C:可以在同一个项目的不同源文件内定义函数名相同但实现不同的inline函数D:定义在Class声明内的成员函数默认是inline函数E:优先使用Class声明内定义的inline函数F:优先使用Class实现的内inline函数的实现解析:A 项错误,因为使用 inline 关键字的函数只是用户希望它成为内联函数,但编译器有权忽略这个请求,比如

2020-11-24 17:02:59 2320 2

原创 C++——list的增删查改的模拟实现

#include <iostream>namespace bite{ // List的节点类 template<class T> struct ListNode { ListNode(const T& val = T()); ListNode<T>* _pPre; ListNode<T>* _pNext; T _val; }; //List的迭代器类 template<class T, class Ref, cl

2020-11-22 19:13:11 648

原创 static成员

static成员所有对象共享,可以看做类的成员static成员不会存放在对象中,存放在静态数据区//stati c成员的访问方式:通过对象方法,对象. static成员,对象指针->static成员2.通过类名访问:类名: :static成员//static成员必须在类外初始化...

2020-11-19 11:02:38 112

原创 Linux下的基本指令(一)

Linux下的基本指令:1. ls 指令语法: ls [选项][目录或文件]功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。常用选项:-a 列出目录下的所有文件,包括以 . 开头的隐含文件。-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件-l 列出文件的详细信息。-n 用数字的 UID,GI

2020-11-19 00:58:26 669

原创 C++——函数模板与类模板

泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础.(模板——函数模板+类模板)函数模板:1.函数模板概念:函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本。2.函数模板格式:template<typename T1, typename T2,......,typename Tn>返回值类型 函数名(参数列表){}//以swap函数为例template<typename T> voi

2020-11-15 11:40:43 142

原创 C++——malloc/free和new/delete的区别

malloc/free和new/delete的区别malloc/free和new/delete共同点是:都是从堆上申请空间,并且需要用户手动释放。不同的地方是:1 malloc和free是函数,new和delete是操作符2. malloc申请的空间不会初始化,new可以初始化3. malloc申请空间时,需要手动计算空间大小并传递,new只需在其后跟上空间的类型即可。4. malloc的返回值为void*, 在使用时必须强转,new不需要,因为new后跟的是空间的类型。5. malloc

2020-11-15 02:31:05 5998 1

原创 C++——内存管理

C++内存管理方式C语言中动态内存管理方式:malloc/calloc/realloc/freeC语言内存管理方式在C++中可以继续使用,但有些地方就无能为力而且使用起来比较麻烦,因此C++又提出了自己的内存管理方式:通过new和delete操作符进行动态内存管理。new/delete操作内置类型:void Test (){ int* p1 = (int*) malloc(sizeof(int)); free(p1); // 1.malloc/calloc/realloc的区别是什么?

2020-11-15 02:26:41 112

原创 C++——友元介绍

友元介绍:友元分为:友元函数和友元类友元提供了一种突破封装的方式,有时提供了便利。但是友元会增加耦合度,破坏了封装。1.友元函数:友元函数可以直接访问类的私有成员,它是定义在类外部的普通函数,不属于任何类,但需要在类的内部声明,声明时需要加friend关键字。class Date{friend ostream& operator<<(ostream& _cout, const Date& d);friend istream& operator&g

2020-11-15 01:58:38 1400

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除