unique_ptr unique std ptr

std:forward

std::forward 在 C++ 中的主要用途是实现完美转发。它的主要好处有以下几点: 保持值类别:std::forward 能够保持函数参数的值类别(即,它是左值还是右值)。这对于保持潜在的移动语义非常重要2。 优化性能:在模板函数中,我们通常使用 std::forward 来转发函数参数,以 ......
forward std

原生并行版std::accumulate

原生并行版std::accumulate ​ 代码来自《c++并发编程实战》 #include <iostream> #include <numeric> #include <algorithm> #include <thread> #include <functional> #include <v ......
accumulate std

std::is_trivially_destructible的作用

template <class Ty> void destroy(Ty* pointer) { destroy_one(pointer, std::is_trivially_destructible<Ty>{}); } 这样设计的好处主要体现在对泛型编程和内存管理的灵活性上。下面是一些可能的好处: ......

Rust std fs 比 Python 慢!真的吗!?

作者:Xuanwo Databend Labs 成员,数据库研发工程师 https://github.com/xuanwo 我即将分享一个冗长的故事,从 OpenDAL 的 op.read()开始,以一个意想不到的转折结束。这个过程对我来说非常有启发性,我希望你也能感受到。我会尽力重现这个经历,并附 ......
Python Rust std fs

C++标准库类std::packaged_task

std::packaged_task是C++11引入的标准库类,用于封装可调用对象,如函数等,并将封装对象作为异步任务进行管理,通过与std::future结合使用,完成异步任务结果的获取。 #include <iostream> #include <thread> #include <future ......
packaged_task packaged 标准 task std

C++标准库类std::shared_future

std::shared_future是C++11的标准库类,其与std::future的不同是允许多个线程使用,多个线程可以同步共享,同时其又不会阻塞等待异步任务的完成。std::shared_future同样也提供get()方法用于获取异步执行的结果。 #include <iostream> #i ......
shared_future 标准 shared future std

C++标准库函数std::async

1、std::async std::async是C++11的标准库函数,用于创建执行异步任务并返回std::future对象来获取异步执行的结果状态。该函数最简单的用法如下所示: #include <iostream> #include <thread> #include <future> std: ......
函数 标准 async std

std::future与std::promise在C++多线程同步与数据共享中的应用

1、std::promise与std::future std::promise与std::future通过配合使用完成数据的同步与共享,两者均是模板类;std::promise存储异步执行的值或异常;std::future提供可供访问的异步执行结果。二者配合使用伪码如下: std::promise< ......
线程 std promise 数据 future

【Cxx 20】使用 std::span 代替数组指针传参

我们知道std::string_view可以创建std::string的一个视图,视图本身并不拥有实例,它只是保持视图映射的状态。在不修改实例的情况下,使用std::string_view会让字符串处理的性能大幅提升。实际上,对于那些连续的序列对象我们都可以创建这样一份视图,对于std::vecto ......
数组 指针 span Cxx std

不要轻易定义指向std::vector中的元素的指针

类应该是被封装的,类的用户通过接口使用类提供的功能,而不必关心类的内部如何实现。然而,C++标准库容器 std::vector 的实现渗透到了接口中来。对于以下代码: const int pushNum = 10; std::vector<int> v = { 1,2,3 }; int* p = & ......
指针 指向 元素 vector std

弄清using namespace std的作用

⭐C++标准为了和C区别开!为了正确地使用命名空间,规定头文件不使用后缀.h。 例如当我们使用<iostream.h>时,相当于在C中调用库函数。 使用using namespace std例如 1 #include 2 #include 3 #include 4 using namespace s ......
namespace 作用 using std

C++11 多线程(std::thread)实例

C++11的std::thread在C中已经有一个叫做pthread的东西来进行多线程编程,但是并不好用 (如果你认为句柄、回调式编程很实用,那请当我没说),所以c++11标准库中出现了一个叫作std::thread的东西。 std::thread常用成员函数构造&析构函数 举个栗子 例一:thre ......
线程 实例 thread std 11

std::thread方法join与detach

1、std::join std::join是std::thread类的成员函数之一,用于等待线程的执行完成。 #include <iostream> #include <utility> #include <thread> #include <chrono> #include <atomic> vo ......
方法 detach thread join std

std::function 与 std::bind解决类成员函数作为回调函数的问题

1、std::function std::function是一个模板类,其可对C++可调用的对象进行封装,比如,成员函数、静态函数等;它的基本作用是简化调用的复杂程度,归一化调用方式。 std::function<int(int, int)> int_function:声明方式为<返回值类型(参数类 ......
函数 std function 成员 问题

C++ lambda 内 std::move 失效问题的思考

最近在学习 C++ Move 时,有看到这样一个代码需求:在 lambda 中,将一个捕获参数 move 给另外一个变量。 看似一个很简单常规的操作,然而这个 move 动作却没有生效。 具体代码如下 std::vector<int> vec = {1,2,3}; auto func = [=]() ......
lambda 问题 move std

2023-11-22 Invariant Violation: [app.model] namespace should be unique ==》模块命名相同导致报错,修改名称即可

如上图,报错原因:存在多个名为demoDataSource的模块名称导致报错 解决方案:修改模块名称即可,把demoDataSource改为demoDataSource2就不会报错了 扩展:该问题是由rudex引起的,redex要求数据模型(models)命名(namespace)必须不同,否则在注 ......
Invariant Violation namespace 模块 名称

Unit_ptr数据类型的理解

1、相关代码理解 在看代码时,发现有用到 SOCKET 我去找它们的定义,发现有如下定义: typedef UINT_PTR SOCKET 又去看UINT_PTR,LONG_PTR, LONG_PTR的定义,发现有如下定义: 1 typedef _W64 int INT_PTR, *PINT_PTR ......
Unit_ptr 类型 数据 Unit ptr

汇编-PTR指针

......
指针 PTR

C++ weak_ptr的应用场景有哪些?

C++: weak_ptr到底有什么用? 很多人对std::weak_ptr的认识只是不增加std::shared_ptr的引用计数,可以用来解决std::shared_ptr可能造成的循环引用问题。但是,实际对它的认识还是不够深刻,本文将从几个实际应用场景讲解,深入了解这种智能指针。比如,你是否知 ......
weak_ptr 场景 weak ptr

汇编-PTR修改操作数大小

PTR操作符可以覆盖一个已经被声明过的操作数的大小。只有在试图用不同于汇编器认定的大小属性来访问操作数时,这个操作符才是必需的。例如, 假设想要将一个双字变量my Double的低16位传送给A X。由于操作数大小不匹配,汇编器不允许这种传送: ......
操作数 大小 PTR

hdc_std 传输文件脚本

项目的使用步骤中有一步是向开发板发送文件,命令比较多: 1、测试设备是否存在:hdc_std list targets 2、读写模式挂载系统分区:hdc_std target mount (但是这个命令貌似有点问题,后边说) 3、授予 hdc 后台进程 root 权限:hdc_std smode 4 ......
脚本 hdc_std 文件 hdc std

std::lock_guard自动加解锁

`std::lock_guard` 是 C++ 中用于管理 `std::mutex` 的 RAII(Resource Acquisition Is Initialization) 类之一。它的主要作用是帮助在获取 `std::mutex` 的所有权时自动对其进行加锁,并在作用域结束时自动解锁,从而避 ......
lock_guard guard lock std

train_logReg_param.o:train_logReg_param.cc:(.text+0x3407): more undefined references to `std::__throw_out_of_range_fmt(char const*, ...)' follow

001、make 编译 报错:train_logReg_param.o:train_logReg_param.cc:(.text+0x3407): more undefined references to `std::__throw_out_of_range_fmt(char const*, ... ......

[ABC286G] Unique Walk 题解

洛谷题目链接 At题目链接 这题一看就很欧拉路径,但是怎么做呢? 如果只有关键边,那么连通图首先会变成一堆连通块,这时只需要分别对每个连通块进行欧拉路径判断,但是对于不属于欧拉路径的连通块,很难对加上非关键边的情况进行扩展。 如果只有非关键边,那么连通图还是变成一堆连通块,但是这些连通块全部都是合法 ......
题解 Unique 286G Walk ABC

C++中的高阶函数 -- std::function实现回调

C++中的高阶函数:以std::function优雅地实现回调 1. 简介 1.1 C++高阶函数的概念 在函数式编程语言中,高阶函数(Higher-order Function)是一个常见的概念,它通常被定义为满足下列条件之一的函数: 接受一个或多个函数作为输入(参数) 输出(返回值)是一个函数 ......
高阶 函数 function std

std::sort 传入成员函数指针报错的解决方案

问题引入 有一个类 A,A 的某个成员函数需要对 A 的某些变量进行 std::sort,同时要调用 A 的另一个成员函数作为比较器。如代码所示: struct A { vector<int> pos = {0, 4, 2, 5, 3}; bool cmp(int x, int y) { retur ......
指针 函数 成员 解决方案 方案

C++11语法——std::move()

std::move() 在C++中,std::move() 用于将对象转换为右值引用。 关于左值、左值引用、右值、右值引用 左值是一个表示数据的表达式(比如变量名或者解引用的指针),程序可以获取其地址 传统的C++引用,即是左值引用。 C++11新增右值引用,用 && 表示。 右值是可出现在赋值表达 ......
语法 move std 11

F. Unique Occurrences(线段树分治+可撤销并查集)

F. Unique Occurrences 假如我们删除所有权值为x的边,那么所有权值为x的边对答案的贡献就是 \(\sum sz[u]*sz[v]\) sz表示两个联通块的大小,且(u,v)的边权为x 我们可以用可撤销并查集来进行处理,简单来说就是将一条边的存在时间看作区间,然后挂到线段树上,然后 ......
线段 Occurrences Unique

std::string_view

在原来的string操作中,大多数都是复制string进行操作,如:substr()、string&传参。它们都会复制占用额外内存。 使用std::string_view犹如只是对它的视图映射进行处理,有一个指针指向一个起始位置,然后会有一个size参数去决定这个指针的移动步数。 #if 1 Pri ......
string_view string view std

C++多线程——mutex、unique_lock、condition_variable

互斥锁 std::mutex 当涉及到多线程编程时,互斥锁(Mutex)是一种同步机制,用于保护共享资源免受并发访问的影响。以下是一个简单的C++互斥锁示例: #include <iostream> #include <thread> #include <mutex> std::mutex mtx; ......
共310篇  :2/11页 首页上一页2下一页尾页