
C++
ChristmasError
GithubBlog:https://christmaserror.github.io/
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
泛型编程学习,编写一个类似STL库中的简易list的迭代器(iterator)
如何编写一个简易的list的迭代器(iterator)原创 2018-09-27 15:55:16 · 412 阅读 · 0 评论 -
C++中const的“就近原则”
在做题的时候,编译时经常会遇到关于const的坑,如果在平时不是常用的话就会很容易忘记,在这里整理一下const的“就近原则”的笔记。 指针 要理解就近原则首先要明白指针。 指针(pointer),可以看作指向(point to)。与引用类似,实现了对其他对象的间接访问。 但有两个不同之处: 1.指针本身就是一个对象,允许对指针赋值和拷贝,并且指针在周期内可以先后指向几个不同的对象(除非是cons...原创 2018-10-18 19:15:14 · 1002 阅读 · 0 评论 -
C++智能指针:shared_ptr,uniqe_ptr,weak_ptr
动态内存 在C++中,动态内存的管理是通过一对运算符来完成的:new和delete。 new:在动态内存中为对象分配空间,并返回一个指向该对象的指针 delete:接受一个动态对象的指针,销毁该对象,并释放与之关联的内存 动态内存的使用需要十分小心,因为要在编程的时候要确保在正确的时间对内存进行释放是极其困难的。如果释放内存不及时,在这种情况下就会出现内存泄漏;但若过早的释放(在仍有指针指向该内存...原创 2018-10-20 18:02:59 · 285 阅读 · 0 评论 -
C++11 Lambda表达式
Lambda表达式 匿名函数有函数体,但没有函数名。 匿名函数是很多高级语言都支持的概念,如lisp语言在1958年首先采用匿名函数。正因为如此,C++11也同样引入了lambda函数。 在C++11中,你可以在源码中内联一个lambda函数,这就使得创建快速的、一次性的函数变得简单了。 相同类似功能我们也可以使用函数对象或者函数指针实现:函数对象能维护状态,但语法开销大,而函数指针语法开销小,...原创 2018-10-21 00:08:48 · 2194 阅读 · 0 评论 -
C++利用RAII技术让系统为我们管理资源(资源获取即初始化——Resource Acquisition Is Initialization)
RAII技术(资源获取即初始化——Resource Acquisition Is Initialization) 编写程序我们经常会使用new或者mallco来向系统申请内存,但我们也会可能忘记使用delete去释放他们,而这种不释放手动申请的资源的后果是十分严重(内存溢出 memory overflow)。这时候RAII技术应运而生。 RAII惯用法是在Bjarne Stroustrup的《C+...原创 2018-11-04 21:38:01 · 411 阅读 · 0 评论 -
老生常谈:char*,char[],strncat,strcpy
写项目的时候又被最基础的 char* , char[] , strncat , strcpy卡了一会,太久没碰老是搞混,索性在这里做个笔记: char* ,const char*,const char* const const char* str1 = "abc"; // char* str1="abc"; // 有些编译器允许上面这样子写 const char* const str3 =...原创 2019-04-26 19:30:03 · 1672 阅读 · 0 评论