sort std

C++(std::vector)

这段代码定义了一个 std::vector 对象,该对象的元素类型为 float。std::vector 是 C++ 标准库中的动态数组容器,可以存储多个元素,并且大小可以动态调整。 std::vector<float> 具体解释如下: std::vector: 这是 C++ 标准库中的一个模板类, ......
vector std

CF1899 E Queue Sort 题解

Link CF1899 E Queue Sort Question 给出一个序列 \(\{a\}\) ,可以进行一种操作:把第一个数放到最后,然后向前移,直到前面的那个数比它小为止 求把序列变成非降序列的次数 Solution 先来考虑无法变成非降序列的情况 如果第一个数最小,在一次操作后,第一个数 ......
题解 Queue 1899 Sort CF

C++(std::unique_ptr)

std::unique_ptr 是 C++ 标准库中的一种智能指针,用于管理动态分配的内存。它是一种独占拥有权(exclusive ownership)的智能指针,保证同一时刻只有一个 std::unique_ptr 指向特定的资源。当 std::unique_ptr 被销毁时,它所拥有的资源也会被 ......
unique_ptr unique std ptr

std::move

在使用std::move时,有几个重要的注意事项: std::move并不会真正地移动对象,真正的移动操作是在移动构造函数、移动赋值函数等完成的,std::move只是将参数转换为右值引用1。 std::move将一个左值强制转化为右值引用,以用于移动语义。移动语义,允许直接转移对象的资产和属性的所 ......
move std

C++(std::shared_ptr)

std::shared_ptr 是 C++ 标准库中的一个智能指针类,用于管理动态分配的内存。它提供了一种共享拥有权(shared ownership)的机制,通过引用计数来跟踪指向同一块内存的所有 std::shared_ptr 实例。当最后一个 std::shared_ptr 被销毁时,它会自动 ......
shared_ptr shared std ptr

[ABC304Ex] Constrained Topological Sort 题解

题意 给定一张有向图 \(G\),有 \(n\) 个点和 \(m\) 条边,问是否存在一种拓扑序的排列 \(P\) 使得 \(l_{i} \le p_{i} \le r_{i}\)。 思路 首先对于一条边 \(u \to v\),如果限制满足 \(r_{v}\le r_{u}\) 或者 \(l_{v ......
题解 Constrained Topological Sort ABC

【Cpp 基础】泛型算法 stable_sort() 的应用

最近在刷牛客的题。经常遇到排序问题,经常有一个附加的规则:相同的数值的,按照录入的顺序排序。 可是C++的sort()的底层是快速排序,并不能保证相同数值的顺序不改变。所以最后我不得不自己写冒泡排序。(冒泡排序不改变相同数值的录入顺序) 写了那么多的排序,但是其实C++里封装有排序函数,而且功能非常 ......
算法 stable_sort 基础 stable sort

使用 std::string_view 提升字符串处理性能

C++标准库提供了一个非常优秀的字符串处理类std::string,我们可以通过该类完成各种字符串操作。但是std::string有一个缺点,它的很多操作都是针对字符串实体,存在不必要的内存拷贝的代码,导致字符串的处理性能不尽如人意。 针对这种情况C++17标准引入了std::string_view ......
字符串 string_view 字符 性能 string

灵魂拷问std::enable_shared_from_this,揭秘实现原理

灵魂拷问std::enable_shared_from_this,揭秘实现原理 引言 在C++编程中,使用智能指针是一种安全管理对象生命周期的方式。std::shared_ptr是一种允许多个指针共享对象所有权的智能指针。然而,当一个对象需要获取对自身的shared_ptr时,传统的方法可能导致未定 ......

CF1809D Binary String Sorting 题解

题意: 思路: 贪心: 单调不降的 $ 01 $ 字符串,一定是一串连续的 $ 0 $ 再加上一串连续的 $ 1 $ 。由于每次操作的代价很大,所以需要在操作次数尽可能少的情况下,尽可能多地使用交换操作。 由于 $ 1 $ 次交换操作,只能减少 $ 1 $ 个逆序对,当存在多个逆序对时,优先通过删除 ......
题解 Sorting Binary String 1809D

[AGC032D] Rotation Sort 题解

题目链接 点击打开链接 题目解法 题目中的操作可以理解为一个点移动位置 首先给出一个结论:每个点只会动至多一次 考虑 \(dp\) 一个比较妙的状态设定是 \(f_i\) 表示 \(i\) 不动的方案数 不妨枚举 \(j\) 表示上一个不动点,限制是 \(j<i\) 且 \(p_j<p_i\) 中间 ......
题解 Rotation 032D Sort AGC

[AGC037D] Sorting a Grid 题解

题目链接 点击打开链接 题目解法 从后往前推一下,可以得到 \(C\) 一定要把每一行的数都归位到那一行,\(B\) 一定要每一列的目标行数互不相同 考虑构造 \(B\) 这个限制看起来略有些网络流,所以考虑如何建图 令 \(a_{i,j}\) 的目标行数为 \(ln_{i,j}\),我们由 \(i ......
题解 Sorting 037D Grid AGC

std::io::Error, thiserror和anyhow

std::io::Error, thiserror和anyhow 读到一篇非常好的文章baoyachi大佬的<细说Rust错误处理>从Rust中怎么处理错误, 讲到怎么定义自己的错误类型, 再到如何简化错误处理流程, 再到如何统一错误处理的形式. 但是这些都是基于标准库提供功能实现的, 需要手动写一 ......
thiserror anyhow Error std io

CF1692G 2^Sort 题解

题意: 思路: 必要性: 对于任意一个符合条件的区间[l,r],任意相邻两项,满足a_i < 2 * a_{i + 1}(l \le i \le r - 1)。 充分性: 对于任意一个长度为k + 1的区间[l,r],如果任意相邻两项满足a_i < 2 * a_{i + 1}(l \le i \le ......
题解 1692G 1692 Sort CF

sort awk 文本处理命令

sort: 1.将文件的每一行作为一个单位,相互比较 2.默认升序 3.以字符来进行对比,从首字符开始往后,依次按ASCII码值排序 sort 显示文件内容 (类似cat) 选项: -u 去掉重复行 -r 升序转为降序(可以跟在-k选项后的数字后面 eg:-k 3r) -o 将结果写入文件(与重定向 ......
文本 命令 sort awk

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

[Codeforces] CF1733C Parity Shuffle Sorting

题面翻译 给定一个长度为 \(n\) 的数组,你可以对它进行不超过 \(n\) 次操作。 对于每次操作: 选择两个下标 \(l, r\),满足 \(1\leq l<r\leq n\); 若 \(a_l + a_r\) 为奇数,将 \(a_r\) 赋值为 \(a_l\),否则将 \(a_l\) 赋值为 ......
Codeforces Shuffle Sorting Parity 1733C

std::is_trivially_destructible的作用

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

E. Permutation Sorting

E. Permutation Sorting You are given a permutation$^\dagger$ $a$ of size $n$. We call an index $i$ good if $a_i=i$ is satisfied. After each second, we ......
Permutation Sorting

微信小程序开发的聚合函数排序.aggregate.sort

'use strict'; const db = uniCloud.database() //对数据库的对象获取; exports.main = async (event, context) => { let start = new Date().getTime(); const collectio ......
函数 aggregate sort

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

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

CF1830E Bully Sort

我永远喜欢数据结构。 洛谷 CF 对于一个排列 \(P_1\sim P_n\),定义 \(f(P)\) 为重复执行以下操作直至将其升序排序的操作次数: 找到一个位置 \(i\),使得其是满足 \(P_i\ne i\) 的位置中 \(P_i\) 最大的那个位置。 找到一个位置 \(j\),使得其是满足 ......
1830E Bully 1830 Sort CF

[LeetCode] 1685. Sum of Absolute Differences in a Sorted Array

You are given an integer array nums sorted in non-decreasing order. Build and return an integer array result with the same length as nums such that re ......
Differences LeetCode Absolute Sorted Array

Day20.匿名函数的两种调用方式_max用法_min用法_sorted用法_map用法_filter用法_reduce用法

1.匿名函数的两种调用方式: 2.匿名函数求最大和求最小: 3.sorted用法和map用法: 4.filter的用法: 5.reduce的用法: ......
函数 方式 filter sorted reduce

C++标准库类std::packaged_task

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

E. Permutation Sorting 树状数组实现离线区间数点

题目链接🔗 题意解读:给定一串数组a,每次操作将所有的 a[i] != i 的数循环右移一位,直到所有的数都在自己的位置上。求对于1到n之间的每个i,需要移动多少次。 首先,先考虑移动次数的问题: 为了简化循环问题,考虑将数组长度手动扩充至 2 * n,对于所有的位置 i 上的一个 a[i] ,分 ......
数组 区间 Permutation Sorting

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
共433篇  :2/15页 首页上一页2下一页尾页