C/C++
文章平均质量分 93
此专栏经常更新一些C/C++知识点,想从头开始学习C/C++的都可以看看
浪雨123
如果文章中有什么问题需要交流,可以通过邮箱[email protected]来联系我
展开
-
C++11新特性(lambda,可变参数模板,包装器,bind)
这样看其实也能够很好理解lambda表达式,我们不是嫌弃仿函数自己手动封装类太麻烦了嘛,lambda表达式就是让编译器自动帮我们封装,我们只要把函数的具体实现传过去就可以了,不过lambda表达式的功能比仿函数还是要强大很多的,我们后面慢慢说先看看上面程序的运行结果lambda表达式会自动帮我们推导返回值的类型,所以我们没有在lambda表达式中加上返回值的类型,如果你非想要指定具体的返回值类型,使用表达式中 ->returntype参数。原创 2023-10-13 19:59:04 · 299 阅读 · 0 评论 -
C++11新特性(右值引用,万能转发)
由运行结果可知,mystring这个匿名对象如果作为参数传递给list,在没有移动构造的情况下,就是使用拷贝构造把这个匿名对象拷贝给list中的元素值,然后自身销毁,有了右值的概念,我们一眼就能看出这个匿名对象是一个将亡值,根本没有必要去拷贝,直接把资源转移给list中的元素值,下图是加上移动构造和移动赋值后的调用情况。这种写法,看似没有拷贝一次,但是别忘了,tmp是在test这个栈帧里创建的,返回值返回后,该栈帧即销毁,tt在引用一块已经销毁的空间,这是绝不允许的。原创 2023-10-12 00:01:35 · 309 阅读 · 0 评论 -
C++11新特性(语法糖,新容器)
所以C++中请使用nullptr来表示空指针。原创 2023-10-05 16:49:56 · 250 阅读 · 0 评论 -
C++基础语法(多态)
在一些C++书籍上是没有多态概念的,而是采用虚函数来称呼,多态一词多用于Java语言,国内叫习惯了也就这么叫了。事实上,有很多花里胡哨的名词实际上指的都是同一个东西,多是翻译的原因。但多态这个翻译,其实还挺应景,缺点是可能让同笔者一样的新手感到抽象晦涩在具体讲述多态之前,回忆一下继承中的相关概念,还记得在继承中提到的隐藏/重定义概念吗?子类和父类之间的成员如果同名的话,那么就会构成隐藏关系,而且我们也提到,子类是可以切片赋值给父类的,这个过程不涉及到类型转换。原创 2023-10-04 15:47:08 · 149 阅读 · 0 评论 -
C++基础语法(模板详解)
不同于普通的函数,模板是不支持声明和定义分离的,因为模板的实例化过程是在编译的阶段完成的,也就是说在编译阶段,模板的定义和声明必须处于同一个文件中//假设我们有一个头文件 `template.h`,其中包含一个模板函数的声明://我们还有一个源文件 `main.cpp`,其中包含了对模板函数的调用:int i = 10;foo(i);return 0;原创 2023-04-16 16:43:30 · 551 阅读 · 0 评论 -
C++基础语法(内存管理)
【代码】C++基础语法(内存管理)原创 2023-04-17 14:57:18 · 401 阅读 · 0 评论 -
C++实践模拟(vector & list,反向迭代器)
begin表示vector元素的起始位置,_finish指向当前vector已存放的元素中的最后一个元素的下一个位置,_end指向空间的末尾,因为指针的减法结果为元素个数差,所以由_end减去_begin就能得到capacity值,由_finish减去_begin就能得到size的值。我知道这段内容有些难以理解,不理解也是没有关系的。而我们传过去的参数是iterator,iterator和const_iterator不是同一个类,故而不能直接传,这就是报没有适当转化错误的原因。原创 2023-05-11 02:22:49 · 612 阅读 · 0 评论 -
C++基础语法(继承)
继承(inheritance)是类的三大特性之一,继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用继承的概念并不难理解,接下来我们举个例子来看看,继承是如何实现代码的复用的。原创 2023-10-02 17:06:03 · 187 阅读 · 0 评论 -
C++实践模拟(stack,queue & priority_queue,仿函数)
我们上面假设的是一个buffer数组中只能存放3个元素,于是我们要将要找的元素的下标值除以3,那么4/3,商就是1,说明该元素在中控数组下标为1的buffer数组中(这个下标为1是相对中控数组中已存在的位置来衡量的,deque底层有自己的算法来控制,我们不需要操心,如果感兴趣可以去查具体的底层实现细节),接着将该元素对3取模,那么4%3,结果就是1,说明该元素在已指定的buffer数组下标为1的位置,我们看这个元素是11,那么对于真个deque来说,下标为4的元素确实是11。原创 2023-05-06 08:45:19 · 254 阅读 · 1 评论 -
C++基础语法(类于对象下)
C++类于对象思想总结篇原创 2022-11-01 18:06:55 · 311 阅读 · 1 评论 -
C++基础语法(类与对象中)
数万字C++类与对象总结(中篇)原创 2022-10-13 23:49:35 · 473 阅读 · 1 评论 -
C++基础语法(类与对象上)
C++类与对象详解上篇原创 2022-10-06 01:34:58 · 498 阅读 · 1 评论 -
C++基础语法(引用,内联函数)
C++基础知识详细讲解之引用和内联原创 2022-09-29 20:16:57 · 443 阅读 · 0 评论 -
C++基础语法(命名空间,缺省,重载)
C++基础语法知识原创 2022-09-21 16:09:25 · 344 阅读 · 5 评论 -
C基础语法(编译与预定义)
C语言程序编译环境和预定义详解原创 2022-07-29 22:27:17 · 320 阅读 · 0 评论 -
C基础语法(文件操作)
C语言文件操作详解原创 2022-07-23 19:30:24 · 665 阅读 · 0 评论 -
C基础语法(动态内存)
C语言动态内存分配详解原创 2022-07-23 02:12:48 · 356 阅读 · 0 评论 -
C基础语法(自定义类型)
c语言自定义类型详细描述原创 2022-07-22 18:20:21 · 75 阅读 · 0 评论 -
C基础知识(字符串函数)
C字符串函数原创 2022-07-17 16:39:02 · 364 阅读 · 0 评论 -
C/C++数据在内存中的存储方式
C语言给定了一些基本的数据类型char 类型int 类型 long 类型float 类型double 类型前三者都属于整型家族,后两者属于浮点型家族,为什么char属于整型家族呢?这是因为字符是以对应的ASCII码值存放到内存中,本质上是属于整数的,所以将其归类为整型。那么我们在创建这些变量且赋予它们具体数值的时候,它们又是如何将这些数值数据存放到内存中的呢?我们都知道任何形式的数据(字符,图片, 音频......)放到电脑中都是以二进制的形式存放的原创 2022-05-25 19:30:57 · 919 阅读 · 0 评论 -
C基础知识(存储类别)
大家好,我是浪雨,大家都知道C语言因其语法特点,能够帮助我们较为精准的控制程序,尤其是在内存管理方面,C语言给我们提供了较为自由的内存管理,但我们在享有这些自由的同时,也要了解相关的规定,不然就会给程序带来很多漏洞,同时我们也要详细来了解存储类别,为以后的自由分配内存打好基础.(文章内容较长,干货满满,可收藏后细细品看)在了解存储类别之前,我先帮大家温习一遍相关的知识点1.作用域一个变量的作用域可以是块作用域,函数作用域,函数原型作用域及文件作用域(其中函数作用域,函数原型作用域,不作为本文原创 2022-04-08 22:33:47 · 663 阅读 · 5 评论