![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 62
qq936836
这个作者很懒,什么都没留下…
展开
-
C++20 协程(一)
协程是C++20最重要的特性,C++的异步编程模式有了协程将会变得简单。协程是能暂停执行以在之后恢复的函数。C++20协程是无栈的在堆上分配一个协程帧,把函数的参数拷贝到协程帧里,会在协程帧里创建promise对象。它们通过返回到调用方暂停执行,并且从栈分离存储恢复执行需要的数据。这样就可以编写异步执行的顺序代码(例如不使用显式的回调来处理非阻塞 I/O),还支持对惰性计算的无限序列上的算法及其他用途。协程与函数协程是一个有点特殊的函数,相比普通函数协程的特殊之处在于它可以暂停和恢复,如下图所示:原创 2022-03-10 23:00:46 · 2794 阅读 · 0 评论 -
C/C++ 关于左值、右值、引用知识点
左值:就是可以放在赋值号左边被赋值的值,必须要在内存有实体右值:当在赋值号右边取出值赋给其他变量的值右值可以在内存也可以在CPU右值是指临时的对象,它们只在当前的语句中有效C++primer中对 对象的定义:对象是指一块能存储数据并具有某种类型的内存空间一个对象a,它有值和地址&a,运行程序时,计算机会为该对象分配存储空间,来存储该对象的值,我们通过该对象的地址,来访问存储空...原创 2018-10-22 15:54:48 · 149 阅读 · 0 评论 -
C++ lambda表达式
//C++ 11中的Lambda表达式用于定义并创建匿名的函数对象,以简化编程工作。Lambda的语法形式如下://[函数对象参数](操作符重载函数参数) mutable或exception声明->返回值类型{ 函数体 }//可以看到,Lambda主要分为五个部分://[函数对象参数]、(操作符重载函数参数)、mutable或exception声明、->返回值类型、{ 函数体...原创 2018-10-25 18:13:01 · 107 阅读 · 0 评论 -
对RAII资源管理的理解
RAII是C++语言中常见习惯用法,全称为“Resource Acquisition Is Initialization”意为资源获取就是初始化。通常用来管理对象内存资源,已经比如文件描述符、互斥锁等资源。RAII基本原理就是使用局部对象管理资源,依赖于构造函数和析构函数的性质以及它们与异常处理的交互作用。我们考虑如下情况:class A { ..... }; //某资源对象...原创 2018-10-30 00:05:40 · 288 阅读 · 0 评论 -
C++的直接初始化与复制初始化的区别
本文转载自:负一的平方根 https://sqrt-1.me/?p=241 修改了部分地方C++中的直接初始化指的是直接调用类的构造函数进行初始化,如下例如string a; //调用默认构造函数string a("hello"); //调用参数为const char *类型的构造函数string b(a); //调用拷贝构造函数复制初始化指的是用“=”号来初始...转载 2018-10-27 22:20:30 · 2111 阅读 · 0 评论