vector bool std
使用 std::setvbuf 加速输入输出
市面上的快读和快写,大致过程是手动扩大缓冲区,并手动将数字转化为字符,使用 fread / fwrite 进行最终缓冲区的输入和输出。 考虑阅读 std::setvbuf 的文档(link),发现这东西可以设置自己的缓冲区,为自己所用,同时可以设置大小。由此,我们不难写出如下的神秘代码: #incl ......
C++从std::vector<int>类型数据创建二叉树
背景 在和chatGPT的日常代码交流中,这位“老师”总能给出不不少好代码,以下就是 C++从std::vector类型数据创建二叉树 的完整代码段: TreeNode* createBinaryTree(const std::vector<int>& nodes, int index) { if ......
C++的std::move与std::forward原理总结
目录0、左值与右值的理解左值和右值的概念左值引用和右值引用1. std::move1.1 函数原型1.2 参数讨论1.3 通用引用1.4 返回值1.5 std::move的常用例子1.5.1 用于vector添加值1.5.2 用于unique_ptr传递1.6 再说转移对象控制权2. std::fo ......
C++中vector容器详解
参考链接:https://www.runoob.com/w3cnote/cpp-vector-container-analysis.html 一、什么是vector? 向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各 ......
cuda vectorized实现矩阵转秩
使用了共享内存和向量化传输,目前为止效果最好的一个实现 __global__ void transposeSmemVec(float* input, float* output, const int X, const int Y){ __shared__ float smem[32 * 4 * 32 ......
15_rust的常用集合_vector
常用集合——vector 集合的数据存放在堆里,无需在编译时确定大小。 使用vector vector可存放多个值,Vec<T>叫做vector。 由标准库提供 可存储多个值 只能存储相同类型的数据 值在内存中连续存放 1)创建vector: 使用Vec::new函数 let v: Vec<i32> ......
std::forward:完美转发的魔法师
大家好,今天我们来谈谈一个C++11引入的强大工具:std::forward。如果你曾经头疼于如何设计一个函数,让它能同时接受左值和右值,且能保留参数原始的性质,那么今天的主题绝对是你的救星。 1、std::forward是什么? 简单来说,std::forward 是一种用于实现完美转发(Perf ......
在C++中,互斥变量(std::mutex)是用于保护共享资源的重要工具,但它们确实有一些局限性,其中之一是无法保证包含指针的区域的多线程安全
在C++中,互斥变量(std::mutex)是用于保护共享资源的重要工具,但它们确实有一些局限性,其中之一是无法保证包含指针的区域的多线程安全。 这是因为互斥锁本质上只能保护它们所保护的代码块,而不会考虑指针指向的数据。 下面是一些与互斥锁和指针相关的常见问题和注意事项: 共享数据的复制: 互斥锁主 ......
C++常用语法知识-- std::istringstream
C++常用语法知识-- std::istringstream 介绍 std::istringstream是C++标准库中的一个类,它用于从字符串中提取数据,并将数据转换为不同的数据类型。通常从字符串中解析数据,例如整数、浮点数等。 使用方法 创建std::istringstream对象,首先,需要创 ......
std::optional<type>
它可以将可能存在或者不存在的内容以合适的方式返回,当返回的是空文件时,可以使用_.value_or("初始值") std::optional<std::string> data=OpenFileAsstring("data.txt"); string value=data.value_or("Not ......
C++11 生成随机数:std::random_device、std::mt199937和std::uniform_int_distribution
1、std::random_device 用于生成随机数,定义在头文件中。 #include<iostream> #include<random> void fun() { std::random_device rd; std::cout<<"random:" << rd()<<std::endl; ......
std::istringstream的用法
1.概要 std::istringstream 是 C++ 标准库中的一个类,它用于从字符串中提取数据,并将数据转换为不同的数据类型。它通常用于从字符串中解析数据,例如整数、浮点数等。以下是关于 std::istringstream 的详细用法: 创建 std::istringstream 对象: ......
【Cpp 语言基础】vector<int>::size_type死循环问题
今天写了一个将数组倒序打印出来的程序,用到了 vector<int>::size_type 类型但是出现了错误。 错误的原因:size_type是unsigned int类型不会减为负值。在for() 循环 index--下,由于size_type永不为负, index >=0 永远成立。 解决办法 ......
std::function逆向还原
std::function的内存结构 本文案例地址:https://wwmf.lanzout.com/b029diasb 密码:areg std::function为lamda函数时 本文的代码都是32位为例 vftable 首先我们可以从Func_impl_no_alloc_V_lambda得知这 ......
如何将没有复制或移动构造函数的对象放入vector容器
正文 直接说答案,这个问题无法实现。原因是因为std::vector容器的插入一定会调用类对象的构造函数或者移动构造函数。 说一下为什么会有这个问题,因为不想用指针,我想直接通过类对象本身的RAII机制来实现的资源的控制,智能指针是一个解决方案,不过智能指针是写起来很繁琐,终究比不上值类型方便。不过 ......
向量vector
向量vector 1.几种向量的定义方式 (1) vector<int> vec 创建一个类型为int的空vector (2) vector<int> vec(vec2) 复制创建一个和vec2数据完全相同的vec (3) vector<int> vec = vec2; (4) vector<int ......
Vector多行日志读取,解析
官方记录:https://github.com/vectordotdev/vector/issues/2137 目前只支持file、docker [sources.multiline_logs] type = "file" include = [ "/opt/multiline.log" ] [so ......
std::function
参考资料 • cplusplus.com:http://www.cplusplus.com/reference/functional/function/ https://www.cnblogs.com/heartchord/p/5017071.html • cppreference.com:http ......
可观测性数据收集集大成者 Vector 介绍
如果企业提供 IT 在线服务,那么可观测性能力是必不可少的。“可观测性” 这个词近来也越发火爆,不懂 “可观测性” 都不好意思出门了。但是可观测性能力的构建却着实不易,每个企业都会用到一堆技术栈来组装建设。比如数据收集,可能来自某个 exporter,可能来自 telegraf,可能来自 OTEL, ......
顺序容器(vector、deque、list、forward_list、array 、string)
一、顺序容器概述 顺序容器提供了控制元素存储和访问顺序的能力,顺序与元素加入容器时的位置相对应。1、常见的顺序容器类型:vector:可变大小的数组。支持快速随机访问,在尾部之外的位置插入或者删除元素可能很慢。deque:双端队列。支持快速随机访问。在头尾位置插入/删除速度很快。只支持双向顺序访问。 ......
疑似std::regex_search正则匹配,导致堆栈错误
一个很奇怪的问题,当我_beginthreadex/CreateThread创建线程,使用std::regex_search匹配时,程序会崩溃,堆栈如下: ntdll.dll!RtlReportCriticalFailure() 未知 ntdll.dll!RtlpHeapHandleError( ......
(unordered_)set,(unordered_)map,数组(vector)
set:保证元素的唯一性,并且元素从小到大排序 unordered_set:保证元素的唯一性,并且元素的顺序未知,不一定和输入相同 map:键从小到大排序 unordered_map:键的顺序未知,不一定和输入相同 数组(vector):元素的顺序和输入相同 ......
std::vector::sort
std::sort(vector.begin(),vector.end(),[](int a,int b){ if(a==1)return false;//a为1就将这个1排在最后,因为返回的是false if(b==1)return true;//还是将1排在最后 return a>b;//降序排 ......
合并区间(区间排序,vector的动态扩容的应用)
以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。 示例 1: 输入:intervals = [[1,3],[2,6],[8,10],[ ......
学习C++ -> 向量(vector)
一、向量的介绍 向量 vector 是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器。 与string相同, vector 同属于STL(Standard Template Library, 标准模板库)中的一种自定义的数据类型, 可以广义上认为是数组的增强版。 在使用它时, 需 ......
使用 C++11 原子类型 `std::atomic_flag` 实现的自旋锁
使用 C++11 原子类型 std::atomic_flag 实现的自旋锁: #include <atomic> class Spinlock { public: Spinlock(): flag(ATOMIC_FLAG_INIT) {} void lock() { while (flag.test ......
Microsoft C++ 异常: std::bad_array_new_length
错误信息 错误代码 ......
C++多线程Multithreading std::condition_variable
多线程Multithreading #include <iostream> #include <thread> #include <mutex> #include <condition_variable> std::mutex mtx; std::condition_variable cv; boo ......
库函数 | C++17 std::filesystem文件系统 用法指北
本文将针对常用的场景,对 std::filesystem 的使用逐一进行验证: 判断文件夹是否存在 创建单层目录 逐级创建多层目录 创建多级目录 当前文件路径 创建文件"from.dat" 获取相对于base的绝对路径 文件拷贝 移动文件或重命名 创建文件 “example.dat” 获取文件大小 ......