![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 93
dabtwice
数据库内核 分布式存储 实时数仓
展开
-
C++系列(三)右值引用
有关C++中左值右值的定义,我们直接用C++ Primer的说法来解释:(为了最大化还原它的本意,这里放上原文)int i = 42;i = 43;int& foo();foo() = 42;int j = 0;j = 42;通常来说,左值是指一个具有持久的内存地址的对象,而右值是指临时对象或字面量值。C++中的左值和右值也具有着不同的用途和行为。例如,左值可以取地址并用作指针,而右值不能取地址。此外,左值和右值在传递参数和返回值时也具有不同的语义和行为,这些在后面会详细说明。原创 2023-09-25 11:53:03 · 773 阅读 · 1 评论 -
C++系列(二)lambda表达式
C++的这个系列接着续上,这次聊聊lambda表达式。C++11中首次引入了lambda表达式。通俗的来说,就是可以方便的定义和创建一个内嵌的匿名函数。这样的标准定义方式在对于查找一段逻辑的调用栈,或者不同层级的逻辑相互解耦的时候是很好的写法。但当我们需要将这个函数的值传递给另外一个算法或者异步函数,特别是函数中的代码量很少的时候,lambda表达式也是一种不错的选择。可以看到,这里我们直接用lambda表达式创建的匿名函数替换了原先独立声明的compare函数,语法上简洁了许多。原创 2023-09-24 03:43:24 · 766 阅读 · 1 评论 -
C++系列(一)智能指针
今天主要讲的是C++的智能指针。在C++中,智能指针的引入是为了更加安全和方便的动态管理内存。智能指针大体上和普通的指针具有一样的功能,唯一不同的地方在于它可以自动的delete其所指向的object。在正确使用的前提下,智能指针可以很好的避免因为忘记释放内存而导致内存泄漏的事情发生。总的来说,C++定义了两种不同的智能指针,shared_ptr和unique_ptr。原创 2023-09-20 08:33:38 · 739 阅读 · 1 评论