
C++填坑
文章平均质量分 80
C++填坑笔记
沉迷单车的追风少年
优快云博客专家,优快云商业化专家,官方内容合作伙伴,官方认证“人工智能领域优质创作者”,入选2023年中国开发者影响力年度榜单。
代表专栏《Diffusion Models与深度学习》、《手把手写深度学习》、《深度学习-计算机视觉》、《手把手写C++服务器》等。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
手把手写C++服务器(13):C++11新特性之静态断言static_assert
前言:我们学过很多断言,动态断言、零宽断言等等,这些在我之前的blog里都有总结。静态断言是C++11中的新技术,在服务端编程中经常使用,这里做一个学习总结。目录语法优点示例参考语法static_assert(常量表达式,提示字符串)如果第一个参数常量表达式的值为真(true或者非零值),那么static_assert不做任何事情,就像它不存在一样,否则会产生一条编译错误,错误位置就是该static_assert语句所在行,错误提示就是第二个参数提示字符串。因为s.原创 2021-07-05 21:40:04 · 980 阅读 · 10 评论 -
手把手写C++服务器(7):给C语言程序员看的C++科普
前言:这一篇博客只能算是服务器编程专题的番外篇,在去年的时候,我打算写一个专题,名字就叫做给C语言程序员看的C++科普,这可以后来遇到很多事情耽搁了(全是借口),写了一半的专题也没了恒心再写下去(太懒了难成大器),但是放弃又难(冠冕堂皇),所以才有了这个番外篇。1、类与对象概念2、struct和class3、 设计class时将public放在前面4、 接口与实现分离:一般设计架构5、尽可能使用const代替#define6、const的作用7、static的作用8、this指原创 2021-06-01 22:59:52 · 2282 阅读 · 23 评论 -
C++ char转换成string的十种方法与应用举例
目录1、std::string constructor2、std::stringstream3、std::string::push_back4、std::string::operator+=5、std::string::operator=6、std::string::append7、std::string::assign8、std::string::insert9、std::string::replace10、转换char to c-string1、std::st原创 2021-03-30 23:24:11 · 11097 阅读 · 2 评论 -
Visual Studio编译原理科普
前言: 刚从vscode、devc、vim或者其他地方来的小伙伴,对vs这种模式往往不是很清楚,特别是什么是release和debug模式,什么时候生成lib文件,什么时候生成dll文件,什么是解决方案,什么时候用sln解决方案,什么时候用suo解决方案,解决方案的生成步骤等等这些,这里我做一个总结,供参考。原创 2021-01-26 21:48:25 · 1584 阅读 · 2 评论 -
从“类中sort()第三个参数问题”聊起——static、const and lambda
目录LeetCode452.用最少数量的箭引爆气球为什么是static?第三个参数需要一直是static吗?改进1:pass by reference-to-const大幅优化时间改进2:lambda横空出世参考:LeetCode452.用最少数量的箭引爆气球先看一下题目,题目是每日一题推荐的,在这篇博客里题目是什么意思并不重要,主要思路是利用sort排序贪心来做。其中重点看一下我sort()这行代码以及我之后的优化过程。为什么是static?现在我想利用sort原创 2020-11-23 22:55:52 · 719 阅读 · 0 评论 -
《后台开发核心技术与应用实践》读后感和一些思考
前言:最近拜读了腾讯的《后台开发核心技术与应用实践》,其实这本书很早之前就听说过,可以说是“大名鼎鼎”,也可以说是“臭名昭著”。无论是在知乎、掘金或是其他技术论坛上,无论是在学院派、工程派的眼里,他都是一本“培训机构类的书籍”。显然,编程老鸟要么喜欢《C++ prime plus》、《Unix网络编程》这样的事无巨细的大部头,要么喜欢《编程珠玑》、《人月神话》这样能引发长期思考的名著。其实我觉得这本书还是非常有价值,正如作者自己所说,20%的知识会80%地使用,作者正是抓住了这20%的知识进行讲解,剩下原创 2020-10-24 11:54:09 · 640 阅读 · 3 评论 -
C++对象内存分配总结
目录六条基本规则C++程序占用内存分类实例代码:参考:六条基本规则空类的大小为1。这个容易理解,任何东西都不可能凭空出现。 静态成员函数不占对象空间。这个很容易理解,因为类中的static是存储在数据区中的,不会占用对象的空间。 析构函数和构造函数不占用对象空间(构造和析构函数除外)。这个容易理解,因为当我们定义了空类的时候,就已经默认包含析构函数和构造函数。在下面的例子当中,我们自己定义了显示的析构函数和构造函数,观察输出。 成员函数不占对象空间。存放在代码区。 虚函数占用原创 2020-10-16 23:04:11 · 1098 阅读 · 0 评论 -
《Essential C++》课后习题和一点思考
今天是中秋节+国庆节,祝大家节日快乐!!目录第四章4.1&&4.2:造轮子stackStack.hStack.cpp第六章6.1:将class改写成template保证宏定义函数单句展开的do{…}while(0)技巧原创 2020-10-01 11:52:44 · 1335 阅读 · 3 评论 -
C/C++陷阱与套路
一、导语C++是一门被广泛使用的系统级编程语言,更是高性能后端标准开发语言;C++虽功能强大,灵活巧妙,但却属于易学难精的专家型语言,不仅新手难以驾驭,就是老司机也容易掉进各种陷阱。 本文结合作者的工作经验和学习心得,对C++语言的一些高级特性,做了简单介绍;对一些常见的误解,做了解释澄清;对比较容易犯错的地方,做了归纳总结;希望借此能增进大家对C++语言了解,减少编程出错,提升工作效率。二、陷阱我的程序里用了全局变量,为何进程退出会莫名其妙的core掉?Rule:C++在不同模块(源文件)转载 2020-07-23 17:21:54 · 784 阅读 · 2 评论 -
关于C++编译器默认编写的一些思考
目录从一道真实的面试题谈起四个C++编译器默默编写的函数不想编译器自动生成的时候,应该明确拒绝为什么要拒绝?怎样拒绝?多态基类声明virtual析构函数任何情况下都会生成constructor函数吗?参考从一道真实的面试题谈起大概两三周前,我在面试阿里云的时候面试官问我的一道题目:C++class会为我们默认编写哪些函数?我不假思索地回答:constructor和destructor呀面试官追问还有呢?我想了一会,竟一时语塞!虽然那轮面试通过了原创 2020-06-12 22:35:10 · 376 阅读 · 0 评论 -
关于优化内联inline函数的一点思考
程序的二八法则:“平均而言一个程序的往往将80%的执行时间花在20%的代码上”——Scott Meyers目录从牛客上一篇帖子谈起:内联函数调用机制:内联函数的缺点和优点缺点:优点:虚函数、构造函数、析构函数与内联函数参考原创 2020-06-09 22:59:17 · 869 阅读 · 0 评论 -
C++全局变量类
以一种更安全,更健壮的方式来表示全局变量的方法,是将其封装成全局变量类,主要涉及以下的知识点:C++类 类中static成员变量 类中static成员函数 类中的成员函数会被自动视为inline内联函数 用pass-by-reference-to-const代替pass-by-value(Effective C++条款20)示例:全局变量的一般写法string program_name;string version_stamp;int version_number;int test原创 2020-05-23 10:00:31 · 6346 阅读 · 2 评论 -
Qt信号与槽和C++信号处理
目录C++信号处理Qt信号与槽基本格式:这个语句中的各部分含义:信号与槽的连接方式自定义信号 :基本格式注意:注意点:官方手册选读信号与槽机制的优点:信号与槽的效率信号与槽效率低的原因C++信号处理C++有类似Qt中信号与槽的功能,但是其功能远没有Qt强大C++中的常用信号量:macro signal SIGABRT ...原创 2019-07-14 17:00:37 · 964 阅读 · 0 评论 -
C/C++填坑笔记——预处理器和标准库&&面向对象类库
日常填坑……目录预处理器参数宏# 运算符## 运算符常用预定义宏C++标准库C++面向对象类库参考:预处理器参数宏记得当时大一时上机时我这么写还被老师gg了……#include <iostream>using namespace std; #define MIN(a,b) (a<b ? a : b) int ma...原创 2020-02-06 10:46:23 · 372 阅读 · 0 评论 -
C/C++填坑笔记——继承、重载和多态
目录继承语法:访问控制和继承多继承重载函数重载运算符重载多态虚函数继承继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行效率的效果。当创建一个类时,您不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成...原创 2020-02-03 17:27:22 · 806 阅读 · 0 评论 -
C/C++填坑笔记——类和对象
C/C++还是大一学的,两年多过去了忘了好多,坑一大堆目录public,private,protect构造函数与析构函数友元函数拷贝构造函数this指针类的静态成员静态成员函数内联函数public,private,protect private 成员只能被本类成员(类内)和友元访问,不能被派生类访问; protected 成员可以被派生类访问...原创 2020-02-03 16:46:19 · 335 阅读 · 0 评论 -
C/C++填坑笔记——指针和引用
C/C++还是大一学的,两年多过去了忘了好多,坑一大堆目录指针NULL空指针指针与数组传递指针给函数从函数返回指针引用引用和指针把引用作为返回值指针NULL空指针在变量声明的时候,如果没有确切的地址可以赋值,为指针变量赋一个 NULL 值是一个良好的编程习惯。赋为 NULL 值的指针被称为空指针。NULL 指针是一个定义在标准库中的值为零的常量。...原创 2020-02-03 15:37:47 · 358 阅读 · 0 评论 -
牛客C++面经——resize与reverse
目录resize与reverse:size与capacity:理解:测试代码:备注:resize与reverse:resize():改变当前容器内含有元素的数量(size()),eg: vector<int>v; v.resize(len);v的size变为len,如果原来v的size小于len,那么容器新增(len-size)个元素,元素的值为默认为...原创 2020-01-14 18:32:32 · 1062 阅读 · 0 评论 -
牛客C++面经——给定三角形ABC和一点P(x,y,z),判断点P是否在ABC内
目录思路:计算面积的方法:海伦公式注意:代码:参考:思路:根据面积法,如果P在三角形ABC内,那么三角形ABP的面积+三角形BCP的面积+三角形ACP的面积应该等于三角形ABC的面积。计算面积的方法:海伦公式S为半周长,A为面积。原题解的计算方法比这个简洁一些但是我没有看懂。。。注意:判断浮点数是否相等的方法 代码书写习惯 ...原创 2020-01-12 16:04:54 · 1493 阅读 · 4 评论 -
C++/C 字符和整数之间相互转换
在优快云上搜索“C++/C 字符和整数之间相互转换”大多是一下四种方法:1.int a = 10;char *intStr = itoa(a);string str = string(intStr);2.int a = 10;stringstream ss;ss << a;string str = ss.str();3. C++11 (推荐,如果...原创 2019-08-29 12:55:40 · 326 阅读 · 0 评论 -
编程基础——虚函数 explicit 笔记
目录explicit(转载)虚函数(转载)来源explicit(转载)在C++中,我们有时可以将构造函数用作自动类型转换函数。但这种自动特性并非总是合乎要求的,有时会导致意外的类型转换,因此,C++新增了关键字explicit,用于关闭这种自动特性。即被explicit关键字修饰的类构造函数,不能进行自动地隐式类型转换,只能显式地进行类型转换。注意:只有一个参数的构造函数...原创 2020-01-23 15:51:18 · 520 阅读 · 0 评论