![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++
文章平均质量分 68
与君一道 提升自己
Ethereal_Rainbow
这个作者很懒,什么都没留下…
展开
-
C++ 移动语义
在谈论移动语义之前,我们先来了解一下什么是左值和右值。左值和右值c++中,左值代表一个在内存中有确定位置的对象(有地址)。而右值不在内存中有确定位置,比如临时变量、表达式、匿名变量和lambda表达式等。(左值和已被修改 而右值不能)左值是持续的;右值是短暂的,并且右值不会将原对象置于有效状态。PS:一个变量的生命周期在超出作用域后结束。如果一个变量代表一个对象,当然这个对象的生命周期也在那时结束。对于临时对象也是如此,C++ 的规则是:一个临时对象会在包含这个临时对象的完整表达式估值完成后、按..原创 2022-04-18 00:34:39 · 425 阅读 · 0 评论 -
C++中哈希表小结
1、hashtablehashtable 的目的是为了提供任何操作都是常数级别。SGI STL 中, hash table 使用了 开链法 实现的。大致的意思如下图所示:hash table 内的元素为 桶子(bucket),每个桶子里面有很多节点。其实有点像我们前面整理的 deque(双端队列),双端队列主控是个指向指针的指针,而hash table是一个vector;双端队列缓冲区是一块连续内存,像是array,而hash table 则是一个类似的单向链表。一下便是一个node节点的结构:tem转载 2021-07-22 15:37:52 · 254 阅读 · 0 评论 -
C++中友元介绍
为什么要引入友元?采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,由此提供类与外界间的通信接口。有时候其他类或函数要访问该类的非共有成员,方法为令其他类或者函数成为它的友元。友元函数若类想把一个函数作为它的友元,加一条以friend关键字开头的函数声明语句即可。格式如下:friend <类型> <函数名>;友元可以访问类的私有成员,其本身是定义在类外的普通函数,但是友元的声明只能常出现在类定义的内部。友元不是类的成员也不受原创 2021-04-08 22:35:38 · 111 阅读 · 0 评论 -
C++中内联函数——inline
在大多数机器上,调用函数要做很多工作:调用前要保存寄存器,并在返回时恢复、复制实参,程序还必须转向一个新位置执行。C++中支持内联函数,其目的是为了解决程序中函数调用问题,提高函数执行效率,用关键字inline放在函数定义的前面可将函数指定为内联函数。关键字inline必须放在函数定义前面才能使函数成为内联,放在声明前面不起任何作用。头文件中声明方法:class A{public: void f1(int x); /** * @brief 类中定义了的函数是隐式原创 2021-04-07 22:34:01 · 233 阅读 · 0 评论 -
类和对象的概念简析
首先结构化程序设计(如C语言)采用全局变量和函数以及函数间调用组成,算法以函数形式呈现,来对数据结构进行操作。因此,函数和数据结构没有之间联系,并且随着程序的增加,使得程序逐渐难以理解,例如某个数据结构的值不正确时,难以查找是那个函数导致的等一系列问题。 由此,面向对象语言应运而生,面向对象(ObjectOriented )是认识事务的一种方法,是一种以对象为中心的思维方式面向将系统看成通过交互作用来完成特定功能的对象的集合。每个对象用自己的方法来管理数据。也就是说只有对象内部的代码能够操作对象内部的数据原创 2020-02-25 11:12:02 · 175 阅读 · 0 评论