
C/C++
文章平均质量分 87
关于C和C++的一些文章
暗夜无风
专注python/pytorch/ML/DL知识分享,兼顾C/C++/Java知识
展开
-
C++ 深拷贝和运算符重载和练习
为 Master 类添加深拷贝的拷贝构造函数和赋值运算符。去掉字符串【两端】和【中间多余的空格】原创 2023-01-02 22:02:52 · 452 阅读 · 0 评论 -
「内存分配」大端小端详解
大端小端是计算机系统内存存储的两种模式,可谓是如雷贯耳的存在了。我本以为自己已经是完全明白了,然而有时碰到的时候却发现概念有些混淆,一旦遇到复杂的场景就不知所措了。所以写下此篇博客记录心路历程。目录一、概念二、求系统大端还是小端2.1 思路如上例2.2 共用体联合体取值共用体判断大小端三、总结一、概念首先给出两者的概念:大端:数据的高位,保存在内存的低地址中。小端:数据的低位,保存在内存的低地址中。先不管它们的区别,那么为什么要引入大小端?内存是以字节为单位存储的,每个地址空..原创 2021-07-09 15:55:41 · 2529 阅读 · 14 评论 -
「通俗易懂」C语言不得不提、不得不晓的文件操作!
文件操作是C语言的基础,但凡做项目都需要涉及到文件操作,因为我们需要将信息保存,否则一个进程结束后数据都丢失了。虽然目前文件操作基本上都是使用数据库(毕竟功能强大),但是基本的文件操作还是有意义的(比如课设)。因此,本篇文章将详细地讲解在C语言中的文件操作,相信会有很大的帮助。目录一、文件定义操作系统的角度文件的分类ASCII文件和二进制文件的比较文件处理方法的分类二、文件操作2.1 文件类型指针(FILE)2.2 文件函数三、打开和关闭文件3.1 fopen——打开文件文件使用方式具体案例3.2原创 2021-07-05 15:20:31 · 305 阅读 · 35 评论 -
详解C++STL容器系列(三)—— map属性和方法详解
目录一、map介绍二、map的属性和方法iteratorscapacityElement accessModifiersOperations三、map的具体用法3.1 iterator(迭代器访问)3.2 capacity(容量)3.3 Element access(下标访问)3.4 Modifiers(修改器)3.4.1 insert3.4.2 erase3.4.3 swap3.4.4 clear3.4.5 emplace3.4.6 emplace_hint3.5 Operations(操作)3.5.1原创 2021-06-18 22:58:13 · 2280 阅读 · 10 评论 -
详解C++STL容器系列(二)—— list的详细用法和与vector的对比
目录一、list介绍二、list创建三、list方法对比vector四、list的具体用法4.1 iterators4.2 Capacity4.3 Element access4.4 Modifierspush_front、push_back、emplace_front、emplace_backinsert、emplaceeraseassignswap4.5 list operationsspliceremoveremove_ifuniquesortmergereverse五、list和vector对比参考原创 2021-06-02 14:53:44 · 1585 阅读 · 26 评论 -
详解C++STL容器系列(一)—— vector的详细用法和底层原理
目录一、介绍二、vector的创建和方法创建vector方法三、vector的具体用法3.1 遍历vector3.1.1 迭代器访问3.1.2 下标访问3.1.3 范围for循环3.2 vector 容量和大小3.3 vector 常用算法3.3.1 push_back、pop_back 和 emplace_back3.3.2 insert 和 emplace3.3.3 erase3.3.4 assign3.3.5 swap 和 clear3.4 vector二维操作定义访问resize操作四、vector原创 2021-05-28 22:33:08 · 45808 阅读 · 17 评论 -
大厂面试重要C++知识(三)—— 智能指针
目录一、前言二、智能指针三、auto_ptrauto_ptr基本操作智能指针赋值四、unique_ptr五、share_ptr六、weak_ptr解决互相引用问题一、前言C/C++最让人诟病的特性之一:内存泄漏。因此如java、C#等语言都提供了内置内存分配与释放功能,屏蔽了指针。自动分配内存还是手动分配内存都有利有弊,而智能指针为解决内存泄漏问题应运而生。内存泄漏的案例:如我们new了一个对象在堆区开辟了空间,需要在一定位置将其delete释放空间,但是程序可能在未执行到delete语句时就已经跳原创 2021-05-25 21:07:00 · 597 阅读 · 2 评论 -
大厂面试重要C++知识(二)—— 内联函数和宏的区别与联系
目录一、内联函数内联函数定义代码实现优缺点关键二、内联函数和宏(macro)的区别宏内联函数和宏的区别参考文章内联函数和宏做为C和C++的基础,具有提高执行效率的功能。那么既然存在了宏,为什么还要内联函数?他们有什么区别和联系呢?以下展开。一、内联函数内联函数定义内联函数是C++为降低小型程序调用开销而采取的一种机制。函数在调用时,需要在栈中为形参和局部变量开辟空间,将实参的值赋值给形参;还有函数执行前的现场状态和返回地址都要压入栈中,以便函数返回后继续执行,这个过程带来时间和空间的开销。同原创 2021-05-24 17:09:59 · 694 阅读 · 2 评论 -
大厂面试重要C++知识(一)—— C++面向对象特性
目录一、面向对象二、封装三、继承四、虚函数和纯虚函数虚函数普通函数内存虚函数内存纯虚函数五、参考文章一、面向对象面向对象的三大特点:封装、继承、多态。当然讲四大特点可以加上抽象。二、封装定义:将数据和信息包装在单个单元中。在面向对象的编程中,封装被定义为将数据和操纵它们的功能绑定在一起。比如,一家公司有销售部门、技术部门、财务部门,销售部门有对应销售数据,而如果财务部门想要查看销售部门的数据时,需要先通过销售部门的人员才能得到相应的数据。而这就是封装,外部人员访问相关部门时需要通过某种渠道、接口才原创 2021-05-20 20:55:33 · 906 阅读 · 16 评论 -
常用数学知识整理——C/C++代码实现
目录一、平年 or 闰年二、最大公约数2.1 辗转相除法三、最小公倍数3.1 穷举法3.2 公式法四、质数 or 合数4.1 判断是否为质数4.2 找到质数序列五、奇数 or 偶数5.1 求余法5.2 位与法写在前头:因为不管生活中或者编程或者是在写数学题的时候,经常遇到一些数学概念模棱两可,可能有时候会用到,但是一段时间过去后记忆就模糊了,这时候又得翻书或者百度。特写此文章用于记忆。一、平年 or 闰年平年365天,闰年366天。闰年判定:能被400整除、或者能被4整除但不能被100整除。其余的原创 2021-03-22 16:39:42 · 1054 阅读 · 0 评论 -
C/C++内存分配——在linux下看内存管理
目录一、C/C++内存分配一、C/C++内存分配 C/C++内存分段:代码段—— .text常量存储区—— .data(也叫ro),包括了常量、初始化后的全局变量和静态变量全局区/静态区—— .bss原创 2021-03-14 17:07:14 · 1375 阅读 · 0 评论