
C/C++基础
文章平均质量分 71
C/C++基础知识
KookNut39
让热爱驱动自我
展开
-
Boost库链接错误解决方案
提示找不到某个lib库原创 2022-06-26 21:27:24 · 1667 阅读 · 1 评论 -
将一个char类型字符添加到string的尾部的方法---C++
文章目录1. += 简单粗暴的方法2. string内置方法push_back3. string内置方法insert4. string内置方法append5. 使用流的方式来操作,方式稍微有点怪,但也不难理解1. += 简单粗暴的方法 std::string s("hello"); const char c = 'N';//将要加到s后面的字符 s += c; std::cout << s << std::endl; return 0;在string内部对于+=这个原创 2022-05-16 23:06:06 · 4681 阅读 · 0 评论 -
C++命名空间(贰)
有关C++命名空间的概念,已经写过一篇了,但是这一块感觉有很多可以说的东西,想起啥就说点啥吧,昨天我们说的那篇文章的开头就说了using namespace std的例子,为什么写了这个语句之后,我们写cout等东西就不需要写命名空间的作用范围了,比如std::cout变成cout,是因为当我们使用using声明的时候,相当于说告诉当前的cpp文件,接下来的作用域范围内,std这个namespace已经属于你了,而我们会遇到比较长的namespace的名字,比如昨天的:namespace namespac原创 2021-12-15 08:30:00 · 610 阅读 · 0 评论 -
C++命名空间(壹)
大家好,我是KookNut39,在优快云写文,分享一些自己认为在学习过程中比较重要的东西,致力于帮助初学者入门,希望可以帮助你进步。感兴趣的欢迎关注博主,可以去专栏查看之前的文章,希望未来能和大家共同探讨技术。本篇命名空间概念科普+例子介绍,后面可能会再写点相关的例子?不知道了命名空间的概念相信大家很多人都听说过,但是我们在什么时候才会用到呢?也许你写了一个简单的C++程序,类似这样:#include<iostream>using namespace std;int main(){.原创 2021-12-13 23:18:48 · 1166 阅读 · 0 评论 -
windows启动单个进程实例(系统中只有一个运行实例)
我们写的程序一般都是可以多次运行的,就比如我随便打开的这个程序,我们一直双击,它会一直启动:但是有时候哦我们只需要一个进程实例,那我们该怎么办呢?一个进程实例具体是什么时候啊?来看一下Windows的任务管理器:还有我们平时用的PC版那个绿色的社交软件,只要登录一个账号之后,你每次启动进程,你都会发现打开的是已经登录的那个页面,也就是无法同时登录两个账号(ps: 特殊方法除外)。那我们自己写的程序要做到这一点,是否有难度呢?其实是比较简单的,只需要你对windows编程有一些基础的了解即可。接下啦手原创 2021-12-01 23:25:38 · 2874 阅读 · 2 评论 -
反转列表测试--剑指offer题目
typedef struct _LIST_NODE_{ struct _LIST_NODE_* Next;//下一个节点 int Data;}LIST_NODE, *PLIST_NODE;void main(){ //构建一个列表 PLIST_NODE v1 = (PLIST_NODE)malloc(sizeof(LIST_NODE)); PLIST_NODE FirstNod...原创 2020-04-28 17:30:05 · 345 阅读 · 2 评论 -
常见排序算法以及其时间复杂度
冒泡算法:时间复杂度O(n^2)、比较稳定void Sub_1(){ /*使用双for循环,然后第一个for循环确定遍历次数 第二个for循环来进行比较,进行转换*/ int v1[5] = { 1,4,3,2,6 }; int i, j; for (i = 0; i < (sizeof(v1) / sizeof(int)); i++) { for (j = i + 1;...原创 2020-04-26 21:57:33 · 401 阅读 · 0 评论 -
根据二进制下1的数目排序--LeetCode
上周广联达笔试的时候,有一道题是我之前在LeetCode上见过的题,但是我在考试过程中只记得大体思路,是调用了一个C++的库函数,可以直接计算1的数量,具体调用哪个库函数记不清楚了。于是下来又搜索了一下这道题,然后回顾了一下实现思路,顺便学习一下其他方法。题目描述:给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。如果存在多个数字二进制中 1 的数目相...原创 2020-05-06 20:26:35 · 569 阅读 · 0 评论 -
C++动态申请内存,new和delete详细介绍以及举例
http://www.cplusplus.com/reference/new/operator%20new/原创 2021-08-09 23:03:58 · 407 阅读 · 1 评论 -
基于QT的串口调试助手
大家好,我是KookNut39,在优快云写文,分享一些自己认为在学习过程中比较重要的东西,致力于帮助初学者入门,希望可以帮助你进步。最近在更新C/C++方面的知识,感兴趣的欢迎关注博主,可以去专栏查看之前的文章,希望未来能和大家共同探讨技术。由于某项目需要,需要写一个处理串口数据的程序,之前也没有用过Qt,所以这次打算用Qt实现这个功能。有一说一,Qt相比于MFC真的是方便快捷了很多,在开发界面的方面还是很强大的。话不多说,先上咱们最终实现的效果图。界面简单,如果大家在某些地方需要通过串口获取数.原创 2021-07-25 16:25:58 · 3081 阅读 · 5 评论 -
LeetCode题库1求解两数之和
题目:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。题解思路一:直接利用双for循环来搞定每一种可能的匹配,就是说把每一个值对应的每一种情况都进行判断,最终进行target判断,如果匹配成功,返回两个角标值!这个解法最坏的一种情况就是我们遍历了所有的数组元素,直到最后一组才匹配成功,所以时间复杂度.原创 2021-07-25 12:14:38 · 400 阅读 · 1 评论 -
LeetCode题库1736求解隐藏最晚时间
题目:给你一个字符串 time ,格式为 hh:mm(小时:分钟),其中某几位数字被隐藏(用 ? 表示)。有效的时间为 00:00 到 23:59 之间的所有时间,包括 00:00 和 23:59 。替换 time 中隐藏的数字,返回你可以得到的最晚有效时间。这个题我做的效率感觉不是很高,因为有for循环,感觉有点拉了,看别人其他人的解答,是直接就用if语句就解决了,那个效率就非常的可观了,这道题就是在此做个记录class Solution {public: string maximumT原创 2021-07-24 20:56:01 · 325 阅读 · 0 评论 -
C语言常见文件操作函数总结详解
C语言文件操作函数,怕是很多人的痛,因为在各种地方都能用到,说的简单一点在某些课堂作业上,可能会让你去操作一个txt文档的读写,再就是课程设计时候老师要求把数据存放到文本文件中,我曾经见过一个粉丝问我问题,他们的老师要求简直离谱,是必须使用文本文档来存放数据!我直接就????????????,怎么还有这种要求阿?数据库操作也不是不行阿,非得用文本文件,虽说这样比较死板,但也侧面反映出了教学对文件操作的重视,再往深了说,比如你要解析某个文件格式,比如常见的PE文件,关于文件的读写几乎是必不可少的一步,首先得读原创 2021-07-22 08:42:29 · 1825 阅读 · 29 评论 -
详解常见面试题---深拷贝和浅拷贝(C++)
C++类对象的赋值操作分为深拷贝和浅拷贝两种,我们所说的的浅拷贝就是赋值操作,这种拷贝比较常见,比如:class A{public: A(); ~A();public: int i;};A::A(){ i = 5;}A::~A(){}void main(){ A a1;//执行默认构造函数 初始化a1.i = 7 A a2 = a1;//发生赋值操作 此刻a2.i = 5 a2.i = 7;//只修改a2中的成员,对a1中的不造成影响 return;}原创 2021-06-30 10:14:52 · 2928 阅读 · 55 评论 -
学习C++,学习类,那override和final你用过没?
如果你在找工作时候,告诉面试官你学习过C++,或者说编程语言里面你擅长C++,那有关override和final的问题,可能就会向你飞过来,就看你能不能把握得住了!这两个关键字是C++11的新特性,有关C++11的新特性,我在之前写过一篇博客,点击这里,之前就说要扩充其中的内容,那今天也算拓展一下,这两个关键字我们依次介绍。final从字面意思理解,那就是最终的,决定性的,不可更改的!为此,我还专门使用优快云官方提供的Chrome插件中的有道词典查了下????:优快云没给我恰烂钱,真心替这个插件打原创 2021-06-25 06:42:09 · 1669 阅读 · 21 评论 -
你真的了解main函数吗?
大家好,我是KookNut39,在优快云写文,分享一些自己认为在学习过程中比较重要的东西,致力于帮助初学者入门,希望可以帮助你进步。最近在更新C/C++方面的知识,感兴趣的欢迎关注博主,可以去专栏查看之前的文章,希望未来能和大家共同探讨技术。我们每写一个C程序或者C++程序,都需要敲下这样的一个函数名main,但是为什么要有main函数?main函数真实的面容又是什么样呢?为什么要有main函数或者main函数的作用是什么?前两天一个初学者问我问题,说他的代码报错了,没法运行,然后我定睛一看,整个.原创 2021-06-22 11:36:54 · 22429 阅读 · 118 评论 -
学习新特性,带你做C++学习的弄潮儿!!!
作为新时代的求学者,我们应该学习和使用那些新特性!我们首先想一下为什么会出现新的特性?那肯定是原有的不够好,推陈然后出新,方便我们在编写代码时侯能够更加的便捷,写出来的代码也更加的安全,才是新特性的意义和价值所在!作为初学者,我们一定要学习这些特性,并且适应去使用它们!我最初写代码时候学的是C语言,然后又学习的C++,导致在转变之后,一些已经用习惯的东西,很难改过来,如果不是刻意的去使用这些新特性,根本都想不起来去用????????????,这是非常尴尬的事情,而我相信这也是很多人都面临的问题,今天借此机原创 2021-06-16 15:23:05 · 1807 阅读 · 62 评论 -
学了C语言想装x能干点啥?手把手教你写个聊天软件来玩玩
大家好,我是KookNut39,在优快云写文,分享一些自己认为在学习过程中比较重要的东西,致力于帮助初学者入门,希望可以帮助你进步。最近在更新C/C++方面的知识,感兴趣的欢迎关注博主,可以去专栏查看之前的文章,希望未来能和大家共同探讨技术。原创 2021-06-11 11:17:33 · 12961 阅读 · 115 评论 -
不会这些字符串操作,你怎么精通C语言?如何玩转C++?
对于学习C语言或者C++的同学,如果对字符串的操作不熟悉,那就无法在学习的过程中更进一步,因为这是非常基础,也是非常重要的一个环节,希望博主这篇文章中的例子,可以教你去搞定字符串操作!原创 2021-06-08 11:20:14 · 9416 阅读 · 95 评论 -
只用70行代码,手把手教你遍历当前windows所有进程!
我相信对于很多学习C++的同学来说,在初学阶段都比较疑惑的一个问题就是,我学这个东西可以干什么?就是为了输出“Hello World”吗?好像学了一堆东西总觉得学的云里雾里,不知道自己能干点什么。变量我知道,数据结构我也了解,类我也学习过,指针我也看过,STL标准模板库老师也讲过,但是这些东西在一起可以干什么?今天就让kt来带大家动手实践一下,以便提高大家学习的热情,写一段代码C++代码在windows系统上,实现所有进程遍历。默认大家都已经掌握了一定的C++编程水平,但是掌握度不高也没关系,照着步骤来原创 2021-06-06 10:59:10 · 8567 阅读 · 101 评论 -
从C语言到C++你必须学会的---动态内存和智能指针
不管你是C++初学者,还是想从C语言转变为C++,你都应该了解C++的动态内存和智能指针,今天我们就来看一下有关这两个方面的内容。本文章内容篇幅较长,且干货满满,感兴趣的大家可以收藏+点赞,以后慢慢看!原创 2021-06-03 15:51:40 · 5033 阅读 · 120 评论 -
面试官居然让我手撕大一课设代码?那offer还不是手到擒来?
该篇文章涉及知识点:结构体的定义、vector的使用、迭代器的使用、野迭代器的避免、排序的方法。如果你需要做一个学生管理系统这样的课程设计,那么这篇文章将是非常重要的基础,在此基础之上,可以帮你很简单的完成学生管理系统的设计。文章中涉及到的是某互联网知名大厂的面试最后一题,文中有详细的函数实现以及注释,文末有整个工程的完整可运行代码,如果觉得不错,麻烦给博主来个一键三连+评论区互动,谢谢各位题目要求:定义一个Student的结构体,包含name和age两个成员,用vector对Student对象进行管原创 2021-06-01 09:02:38 · 1538 阅读 · 85 评论 -
学会调试,让你也成为改bug能手
前言:最近有些粉丝问我一些代码问题,他们的代码大多不是复杂的项目,但是对于初学者,他们发现代码的执行结果不符合自己的预期,但是又不知道自己哪里出了问题。我相信这是对于很多初学者来说,都会遇到的问题和情况,明明代码是按照自己的理解写的,感觉逻辑也说得通,那到底哪里出了问题呢??他们的bug其实不难解决,一般通过调试就可以找出问题所在,但是难搞的地方,就是他们不会调试。今天我们就来教大家调试代码,清晰的看看代码的执行流程,帮你顺利找到bug,提高自己的编码水平!如果学会了,喜欢博主的文章,可以一键三连支持博原创 2021-05-28 23:24:35 · 3605 阅读 · 93 评论 -
使用vs建立C/C++项目
使用VS2017来建立一个C/C++项目详细步骤原创 2021-05-27 22:56:32 · 8819 阅读 · 7 评论 -
C++萌新来看,一篇文让你让你彻底搞定类(超详细)!
学习C++,类是我们永远绕不开的话题,有关类的知识点实在是太多了,所以废话不多说,直接进入正题吧,性子急,就不整那些花里胡哨没有用的了。一、什么是类?1.类的概念有关类的官方定义可以通过百度百科查看,但是我觉得官方的话总是比较抽象的,就像类本身一样。我用通俗的语言说一下自己对类的理解,类就是把数据和函数进行抽象,然后进行封装起来,对外部只提供一个接口去使用。外部的调用者看不到里面发生了什么。举个例子:我们可以把狗抽象成类,狗有头,有爪子,有耳朵,这些相当于类的数据成员,然后狗会跑,跳,吠,吃东西,这些原创 2021-05-26 23:06:06 · 2791 阅读 · 132 评论 -
由浅入深,带你探索C语言指针的魅力
对于初学者来说,听学长学姐们说指针很难?指针指两下会指的让人找不到方向?在这种恐惧之下,我们肯定也好奇什么是指针?什么是指针?什么是***指针?依在下愚见指针就是地址,那既然是地址,为什么被说的这么玄乎呢?接下来让我带带领大家一层一层的揭开指针神秘的面纱。此文针对初学C/C++指针的同学,或者期末考试复习的同学,如果您觉得对您学习有所帮助,麻烦来个一键三连。一、什么是指针?定义:指针是一种数据类型,用来存放内存地址单元。我们通常把具有指针类型的变量称为指针变量。首先我们需要知道指针是如何定义的,指原创 2021-05-24 00:52:28 · 3943 阅读 · 79 评论 -
C/C++形参和实参的区别?
本人是C/C++小白一个,理解不是特别深刻,本文适合C/C++初学者阅读,欢迎大家共同探讨交流。关于定义的文字解释可以搜索相关概念,在这里,我们来结合简单的代码来看一下形参和实参的定义:说的通俗一点就是函数声明和定义时候的参数,是形参,形参不占用内存空间,而在函数调用过程中传的参数是实参,这些参数都是占据内存空间的。那么两者有什么区别呢?两者的区别:1.形参在调用的时候才会分配内存,调用结束立即释放;而实参则是最初就会分配内存。2.由于函数定义域的原因,形参和实参在各自定义域内互不影响,也就原创 2021-05-05 20:36:21 · 3480 阅读 · 6 评论 -
C/C++结构体内存粒度对齐?结合调试信息来看
C语言或者C++内存粒度对齐是我们经常提到的问题,而对内存的有效合理的利用,必然会使我们写出来的代码更加高效。这几天写代码过程中出现了一个bug,就是由于内存粒度原因导致,所以总结一下。首先我们来看一下理论知识(我个人理解的):结构体中数据成员内存对齐的原则:按照一个结构体中的成员中最大字节数整数倍对齐,比如在x86下,出现int(4字节) char(1字节) double(8字节),则肯定是按照最大的8字节整数倍对齐,8字节就相当于一个基准一样,如果遇到的字节数可以在8字节内存放,那就ok,否则需要重原创 2021-04-30 08:41:44 · 1482 阅读 · 2 评论 -
C++关键字--mutable
mutable中文意思是可变的,易变的,在C++中,我们在类中使用可变数据成员时,需要加mutable关键字,当我们需要改变类中的某个数据成员时,按照我们惯性的思维来说,是很好实现的。我们先给出定义的一个简单的类:#pragma onceclass CSample{public: CSample(); ~CSample(); void ChangeNumber() const; void Change_m2();private: mutable size_t m1; size_t m2原创 2021-01-20 22:07:41 · 703 阅读 · 0 评论 -
归并排序(附C++实现)
最近心血来潮,又想看一些常用算法的知识点,反正之前也写过一篇简单的算法整理,算是开了个头,但是就没有后续了,忽然又想整理常见算法的知识点了,今天就来整一个归并排序吧,随心而更。。。...原创 2020-11-18 10:25:31 · 770 阅读 · 2 评论 -
初探AVL树
树在计算机中是一种非常重要的数据结构,而二叉树是每个节点最多有两个子节点,没有子节点的称为叶节点。今天我想总结一些有关AVL树的相关知识。AVL tree是一个二叉搜索树,其查找数据的时间复杂度为:O(lg n),n为节点个数。平衡因子:左子树高度-右子树高度形成一个AVL树有以下条件:如果树是AVL树,那么它的左右子树都是AVL树。左右子树高度差小于1。AVL树的插入:我们把距...原创 2020-10-06 23:22:14 · 349 阅读 · 0 评论 -
负数居然比正数大?无符号整型与整形混用的后果
在之前写一个代码的过程中,没有注意细节,对于一个文件的大小,就默认定义为unsigned int类型了,然后,每次遍历一段之后,就减去遍历的长度,这个unsigned int类型的值,在正常的测试下,并没有出现什么问题,但是到了真正的压力测试,大量的fuzzer来进行测试的时候,出现了一个看起来很奇怪的bug,正数居然比负数小?这是什么原因?我们看看下面的代码: int v1 = -1; unsigned int v2 = 5; if (v2 < v1) { printf("error\n原创 2020-10-04 21:39:24 · 3418 阅读 · 4 评论 -
C++11新标准之范围for语句
说起for语句,我们都不会陌生,因为在循环中经常会用for语句来遍历一些数组什么的,就形如以下的for循环,是我们最常见的: for (int i = 0; i < 5; i++) { cout << i << endl; }范围for语句可以遍历容器或者其他序列的所有元素。以下用一个小小的代码测试片段说明一下这个新特性的使用方法: /*传统写法,遍历每个string类型的字符*/ string str("hello world"); for (int原创 2020-10-04 17:55:28 · 648 阅读 · 1 评论 -
字节存储顺序(大端和小端)
Big-endian(大端):高位字节存入低地址,低位字节存入高地址。Little-endian(小端):低位字节存入低地址,高位字节存入高地址。例如,将20200521h写入内存中,分别以大端和小端存储,我们会看到什么?我们假设内存起始地地0x009AFD40为起始存储地址:我电脑使用的inter的处理器,在VS2017中我们可以看到内存存储是小端存储方式。“What do you do when things go wrong? Oh! You sing a song!”...原创 2020-05-21 10:35:47 · 2041 阅读 · 1 评论 -
map以及使用举例--C++基础
关联式容器:原创 2020-04-26 11:27:01 · 472 阅读 · 1 评论 -
set以及使用举例--C++基础
关联式容器:原创 2020-04-26 10:16:53 · 448 阅读 · 0 评论 -
deque以及使用举例--C++基础
序列式容器:vector是单向开口的连续线性空间,deque是一种双向开口的连续线性空间。所谓双向开口,意思就是可以在头尾两端分别做元素的插入和删除操作。deque和vector的最大差异:在于deque允许常数时间内对头端进行插入和移除操作。在于deque没有所谓的容量的概念,因为它是以动态的分段连续空间组合而成,随时可以增加一段空间并链接起来。deque是一段一段的定量连...原创 2020-04-25 22:14:23 · 361 阅读 · 0 评论 -
queue以及使用举例--C++基础
序列式容器:queue是一种先进先出(First In First Out)的数据结构。它有两个出口,queue允许新增元素,移除元素,从底端加入元素,取得最顶端元素。但是除了最底端和最顶端取得外,没有任何办法可以存取queue的其他元素。换言之,queue不允许遍历行为。queue的所有元素进出都必须符合先进先出的条件,只有queue顶端的元素,才有机会被外界取用,queue不提供遍历功能,...原创 2020-04-25 21:29:52 · 598 阅读 · 0 评论 -
stack以及使用举例--C++基础
序列式容器:stack是一种先进后出的数据结构(First In Last Out),它只有一个出口,我们编程中的栈区数据就是这样的存放形式,stack允许新增元素、移除元素、取得最顶端元素。但是除了最顶端外,没有任何办法可以存取stack的其他元素。换言之,stack不允许遍历行为。stack所有元素的进出必须符合先进后出的条件,只有stack的顶端元素,才有机会被外界调用,stack不提供...原创 2020-04-25 19:10:56 · 502 阅读 · 0 评论 -
list以及使用举例--C++基础
序列式容器:list是一个双向列表,它不是像vector那种连续线性空间,每次插入或者删除一个元素的时候,就配置或释放一个元素空间,因此list对空间不浪费。list不仅是一个双向列表,还是一个环状双向列表,它执行插入操作时候,会插入到迭代器所在位置之前。先看代码示例:#include"Test.h"#include<vector>#include<list>...原创 2020-04-25 18:39:15 · 505 阅读 · 0 评论