何时/如何使用 std::enable_shared_from_this

要点回顾 继承自 std::enable_shared_from_this 的类能够在其自身实例中通过 std::shared_from_this 方法创建一个指向自己的 std::shared_ptr 智能指针。 从一个裸指针创建多个 std::shared_ptr 实例会造成严

std::for_each易忽略点

以下代码为修改vector内部的每一个元素,使其每个元素大小变为原来的平方。 std::vector v1{1, 2, 4, 2}; std::for_each(begin(v1), end(v1), [](auto& n) { return n * n; }); for (const auto&

std::copy与std::back_inserter引发的惨案

#include #include #include #include int main() { std::vector v{1, 2, 3, 4, 5}; std::copy(begin(v), end(v), std

用现代C++写一个python的简易型list

std::variant介绍:en.cppreference.com/w/cpp/utility/variant 通过泛型模板(仅提供了int, double, string三种类型的存储),实现了append, pop, front, back, size等方法,并且通过重载运算符实现了对负数索引

[转帖]echo “新密码”|passwd --stdin 用户名

https://www.cnblogs.com/rusking/p/6912809.html --stdin This option is used to indicate that passwd should read the new password from standard input, w

Python colorama 设置控制台、命令行输出彩色文字

为了方便调试代码,经常会向stdout中输出一些日志,但是大量日志,有时不好定位问题。 使用终端打印特定颜色字符串,可以突出显示关键性的信息,帮助用户更好地识别和理解输出内容。 https://pypi.org/project/colorama/ Colorama 是为了在命令行界面中提供简单、方便

从优秀源码中学到的两个技巧

设计一个不能被using的对象 在实际开发中为了避免命名空间污染,一般都不会using namespace std。但是如果一个对象写起来比较复杂,用using能大幅度地简化操作。现在假设我们要设计一个函数,它在一个作用域里面,使用它只能以A::B::C()这种形式。思考一下,如果我们放在命名空间下

[转帖]postgresql日志参数

https://www.jianshu.com/p/407c03aaa600 postgresql日志参数 logging_collector:这个参数启用日志收集器,它是一个捕捉被发送到stderr的日志消息的后台进程,并且它会将这些消息重定向到日志文件中;默认是OFF,修改参数需要重启。 log

[转帖]Linux文本处理三剑客之awk学习笔记05:getline用法详解

https://www.cnblogs.com/alongdidi/archive/2021/01/19/awkGetline.html getline用法详解 在默认情况下,awk支持从文件或者STDIN中读取数据。我们也可以使用getline来灵活读取数据,例如在main代码块执行过程中读取某个

[转帖]Linux文本处理三剑客之awk学习笔记05:getline用法详解

https://www.cnblogs.com/alongdidi/p/awkGetline.html getline用法详解 在默认情况下,awk支持从文件或者STDIN中读取数据。我们也可以使用getline来灵活读取数据,例如在main代码块执行过程中读取某个非待处理文件的数据,或者从某个读取

[转帖]docker 日志方案

https://www.cnblogs.com/charlieroro/p/10294450.html docker logs默认会显示命令的标准输出(STDOUT)和标准错误(STDERR)。下面使用echo.sh和Dockerfile创建一个名为echo.v1的镜像,echo.sh会一直输出”h

scanf、cin及其优化、快读性能测试

为了让大家了解C++各种IO方式的性能,于是就有了这篇文章。 本次测试采取的数据均为 \(10^6\) 个不超过 \(10^8\) 随机正整数。 测试代码: #include using namespace std; int x; int main(){ freopen

SDL3 入门(3):三角形

SDL3 提供了 SDL_RenderGeometry 函数绘制几何图形,用法和 OpenGL 差不多,先定义顶点数据,然后根据顶点数据绘制几何图形。 绘制三角形的代码如下: std::array origin_vertices = { SDL_Vertex { { 1

C++11智能指针 unique_ptr、shared_ptr、weak_ptr、循环引用、定制删除器

目录智能指针场景引入 - 为什么需要智能指针?内存泄漏什么是内存泄漏内存泄漏的危害内存泄漏分类如何避免内存泄漏智能指针的使用及原理RAII简易例程智能指针的原理智能指针的拷贝问题智能指针的发展历史std::auto_ptr模拟实现auto_ptr例程:这种方案存在的问题:Boost库中的智能指针un

迭代器的一些简单理解

迭代器的一些简单理解 使用迭代器最方便的地方就是和算法库结合,对于实现只需要聚焦于算法,而不用过多考虑数据结构的实现。 举一个常见的的例子,std::copy_n 用作于范围元素的复制,适配于各个容器类型,并且演化出了 back_inserter/front_inserter/inserter 这类

题解:CF1956A Nene's Game

这道题其实挺有意思,多测里面还套了个多测。 思路就是用向量模拟删除过程,具体请看代码里的注释。 #include using namespace std; int k,q,a[105]; void solve() { int n; cin>>n; vector

模板特化的多维度挖掘

假如我有一个需求,就是如果传入的参数是int类型,我就输出int类型,否则就输出T。很显然,根据模板的基础知识,我们可以这么写 template void f(T) { std::cout << "T\n"; } template <> void f(int) { std::co

向量化实现矩阵运算优化(一)

xsimd简介 xsimd是C++的一个开源simd库,实现了对常见simd指令的封装,从而使得simd的操作更为简单。接下来先从两个简单的例子来入门xsimd。 void average(const std::vector& v1, const std::vector

「TAOI-2」Ciallo~(∠・ω< )⌒★ 题解

# 「TAOI-2」Ciallo~(∠・ω 考场上以防万一,我用的双哈希……但好像有点多余。 ```cpp #include #include #include #include using namespace std; const int N = 4e5 + 7, BASE = 131, mod

Linux管道符

十五、管道符 管道符和grep命令结合的是最多的 管道符的标准定义: 管道是一种通信机制,常用语进程之间的通信。它表现出来的形式:将前一个的标准输出(stdout)作为后面命令的标准输入(stdin) 利用grep和管道符来查看用户信息 用户信息存储在 /etc/passwd中 我们自己创建的用户的