DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 541 评论 :: 1614万 阅读
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

随笔分类 -  c++11/14/17/20

1 2 3 下一页

摘要:文章目录 1. function和bind 1.1 function使用方法 1.2 bind 2. 可变模板参数 2.1 可变模板参数函数 2.2 可变模板参数的展开 1. function和bind C++中的function和bind是为了更方便地进行函数对象的封装和调用而设计的。 funct 阅读全文
posted @ 2024-01-22 18:38 DoubleLi 阅读(421) 评论(0) 推荐(0) 编辑

摘要:目录 前言 C++左值和右值 二、右值引用 二、右值引用 前言 对于C++的左值和右值相信很多人都没有一个很透彻的了解,之前我也是不懂的时候查阅了好多文章,但是讲完我还是一头雾水,直到我遇到一篇宝藏文章,讲的左值右值的关系以及Move函数的用法是相当的清楚,文章链接在这,话不多说讲解一下文章链接 C 阅读全文
posted @ 2024-01-22 12:17 DoubleLi 阅读(163) 评论(0) 推荐(0) 编辑

摘要:智能指针 智能指针解决的问题 智能指针分类 shared_ptr 内存模型图 shared_ptr示例 shared_ptr含义 shared_ptr基本用法及常用函数 常用函数 智能指针的构造,初始化-make_shared explicit 获取原始指针get 指定删除器 删除动态数组 shar 阅读全文
posted @ 2024-01-22 11:31 DoubleLi 阅读(67) 评论(0) 推荐(0) 编辑

摘要:基础知识: 智能指针的设计与实现: 1.智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。 2.每次创建类的新对象时,初始化指针并将引用计数置为1; 3/当对象作为另一对象的副本而创建时,拷贝构造函数拷贝指针并增加与之相应的引用计数; 4.对一个对象进行赋值时,赋 阅读全文
posted @ 2024-01-03 15:35 DoubleLi 阅读(152) 评论(0) 推荐(0) 编辑

摘要:一、简单使用 C++11提供了一套精练的线程库,小巧且易用。运行一个线程,可以直接创建一个std::thread的实例,线程在实例成功构造成时启动。若有底层平台支持,成员函数std::thread::native_handle()将可提供对原生线程对象运行平台特定的操作。 #include <thr 阅读全文
posted @ 2023-12-07 09:58 DoubleLi 阅读(100) 评论(0) 推荐(0) 编辑

摘要:根据当前时间戳与机器启动至今的时间长度相减,可以精确计算出机器启动时刻的时间戳epochtime 代码 #include <iostream> #include <stdio.h> #include <time.h> #include <chrono> int main() { #ifdef __l 阅读全文
posted @ 2023-11-28 10:36 DoubleLi 阅读(233) 评论(0) 推荐(0) 编辑

摘要:本教程将介绍如何使用C++11 std::thread设置线程的堆栈大小。C++11 std::thread是一种轻量级的多线程实现,它的灵活性使得它成为一个流行的选择。但是,在某些情况下,您可能需要设置线程的堆栈大小来满足您的需求。 在开始本教程之前,我们假设您已经熟悉了C++11 std::th 阅读全文
posted @ 2023-07-10 19:16 DoubleLi 阅读(1482) 评论(0) 推荐(0) 编辑

摘要:在采用C++编写算法时,经常需要判断两个浮点数是否相等。由于计算精度的原因,采用“==”运算符是不可行的。下面给出采用C++11标准判断两个浮点数是否相等的代码: // Test whether two float or double numbers are equal. // ulp: units 阅读全文
posted @ 2023-03-28 17:21 DoubleLi 阅读(1761) 评论(1) 推荐(0) 编辑

摘要:【并发编程二十一】c++20协程(co_yield、co_return、co_await ) 一、协程分类 1、控制机制划分 2、有栈(stackfull)/无栈(stackless)划分 二、c++20协程 三、co_yield 1、demo 2、相关知识点介绍 四、co_return 五、co_ 阅读全文
posted @ 2023-03-16 17:06 DoubleLi 阅读(2123) 评论(0) 推荐(0) 编辑

摘要:【并发编程二十】协程(coroutine) 一、线程的缺点 二、协程 三、优点 四、个人理解 五、协程库 1、window系统 2、unix系统(包括linux的各个版本) 2.1、makecontext 2.2、swapcontext 2.3、setcontext 3、第三方库 3.1、Boost 阅读全文
posted @ 2023-03-16 16:49 DoubleLi 阅读(398) 评论(0) 推荐(0) 编辑

摘要:【并发编程六】c++进程通信——信号量(semaphore) 一、概述 二、信号量 三、原理 四、过程 1、进程A过程 2、进程B过程 五、demo 1、进程A 2、进程B 六、输出 七、windows api介绍 1. 创建信号量 CreateSemaphore() 2. 打开信号量 OpenSe 阅读全文
posted @ 2023-03-16 15:45 DoubleLi 阅读(2349) 评论(0) 推荐(0) 编辑

摘要:【并发编程十二】c++20线程同步——信号量(semaphore) 一、互斥 二、条件变量 三、future 四、信号量 1、信号量原理 2、c++ 20 信号量 3、demo 简介:本篇文章,是线程同步的最后一篇。我们详细的介绍下c++标准库提供的线程同步方法——信号量(semaphore)。 一 阅读全文
posted @ 2023-03-16 15:41 DoubleLi 阅读(1239) 评论(0) 推荐(0) 编辑

摘要:【并发编程十一】c++线程同步——future 一、互斥 二、条件变量 三、future 1、promise 1.1、子线程设值,主线程获取 1.2、主线程设置值,子线程获取 2、async 2.1、不开新线程的async 2.2、开新线程的async 3、packaged_task 3.1、不使用 阅读全文
posted @ 2023-03-16 15:39 DoubleLi 阅读(264) 评论(0) 推荐(0) 编辑

摘要:左值(lvalue)与右值(rvalue) 左值与右值的概念其实在C++0x中就有了。概括的讲,凡是能够取地址的可以称之为左值,反之称之为右值,C++中并没有对左值和右值给出明确的定义,从其解决手段来看类似上面的定义,当然我们还可以定义为:有名字的对象为左值,没有名字的对象为右值。 class A 阅读全文
posted @ 2023-03-16 15:22 DoubleLi 阅读(182) 评论(0) 推荐(0) 编辑

摘要:1.std::move std::move - cppreference.com​zh.cppreference.com/w/cpp/utility/move std::move主要使用在以下场景: C++ 标准库使用比如vector::push_back 等这类函数时,会对参数的对象进行复制,连数 阅读全文
posted @ 2023-03-16 15:15 DoubleLi 阅读(198) 评论(0) 推荐(0) 编辑

摘要:最近看代码发现,在多线程中实现有关throttle和阻塞等有关的功能时,条件变量的使用是最常见的。 首先先对条件变量有个基本的认识 条件变量的基础知识 条件变量std::condition_variable定义在头文件<condition_variable>中。 条件变量用于阻塞一个或多个线程,直到 阅读全文
posted @ 2023-03-15 17:45 DoubleLi 阅读(295) 评论(0) 推荐(0) 编辑

摘要:摘要 C++11标准从发布到现在已经快10年了。笔者在工作中陆陆续续学习并应用了移动语义(move semantics),智能指针(unique_ptr<>, shared_ptr<>),lamda等C++11的新特性。总体感觉还是真香。最近因为项目开发,要搭建多线程的自动化测试,于是尝试使用了条件 阅读全文
posted @ 2023-03-15 17:45 DoubleLi 阅读(173) 评论(0) 推荐(0) 编辑

摘要:【多线程】C++11多线程(简约但不简单) 目录 ​ ​一、简单使用​​ ​ ​1、线程参数​​ ​ ​2. 类成员函数做为线程入口​​ ​ ​3. join: 等待线程执行完成​​ ​ ​4. 线程暂停​​ ​ ​5. 线程停止​​ ​ ​二、进阶(更多你可能需要知道的)​​ ​ ​1. 拷贝​​ 阅读全文
posted @ 2023-03-13 23:01 DoubleLi 阅读(214) 评论(0) 推荐(0) 编辑

摘要:文章目录 1 原子操作 2 C++11原子变量 3 使用原子变量 3.1 没有使用线程互斥的数据操作 3.2 使用互斥量保证线程互斥 3.3 使用原子量std::atomic保证数据互斥 1 原子操作 原子操作:一个独立不可分割的操作。多线程编程需要保证线程安全,而线程安全一个很重要的特性就是原子性 阅读全文
posted @ 2023-03-02 19:31 DoubleLi 阅读(538) 评论(0) 推荐(0) 编辑

摘要:What is the lifetime of a C++ lambda expression? (我已经阅读了C ++中lambda派生的隐式仿函数的生命周期是什么?已经没有回答这个问题了。) 我理解C ++ lambda语法只是用于创建具有调用操作符和某个状态的匿名类的实例的糖,并且我理解该状态 阅读全文
posted @ 2022-12-05 17:33 DoubleLi 阅读(766) 评论(0) 推荐(0) 编辑

1 2 3 下一页
点击右上角即可分享
微信分享提示