随笔分类 -  C++

摘要:C++ 中的 bitset 是一个用于处理固定大小位序列的模板类,提供高效的位操作功能。以下是对其关键特性的详细介绍: 1. 声明与初始化 头文件:需包含 <bitset>。 声明:bitset<N> 表示一个包含 N 位的二进制集合(N 为编译时常量)。bitset<8> b1; // 默认初始化 阅读全文
posted @ 2025-02-19 09:10 Tomorrowland_D 阅读(224) 评论(0) 推荐(3) 编辑
摘要:在算法比赛中,快读是一个常用的技巧,用于提高输入数据的速度。常见的快读方法有以下几种: 1. C++ 中的快读 C++ 中常用 scanf 和 getchar 进行快读。 #include <cstdio> #include <cstring> inline int read() { int x = 阅读全文
posted @ 2024-10-21 12:25 Tomorrowland_D 阅读(522) 评论(1) 推荐(3) 编辑
摘要:#define read(x) scanf("%d",&x); 这行代码是一个宏定义,使用了 C 语言中的 #define 指令。它的作用是定义一个名为 read 的宏,用于简化输入操作。 具体来说: #define read(x):这部分定义了一个宏,名字是 read,它接收一个参数 x。 sca 阅读全文
posted @ 2024-10-15 19:55 Tomorrowland_D 阅读(151) 评论(0) 推荐(1) 编辑
摘要:最长上升子序列 本文与leetcode300.最长递增子序列,这题题意一样,阅读完本文可以挑战一下 力扣链接 题目叙述: 给定一个无序的整数数组,找出其中最长上升子序列(LIS)的长度。 输入: [5,7,1,9,4,6,2,8,3] 输出 4 解释 最长上升子序列是[1,4,6,8],其长度为4。 阅读全文
posted @ 2024-08-23 01:05 Tomorrowland_D 阅读(54) 评论(0) 推荐(1) 编辑
摘要:使用 next_permutation 函数非常简单,以下是具体的步骤和注意事项: 步骤: 包含头文件:确保包含 <algorithm> 头文件,因为 next_permutation 函数位于这个头文件中。 #include <algorithm> 准备容器:next_permutation 可以 阅读全文
posted @ 2024-08-16 10:25 Tomorrowland_D 阅读(72) 评论(0) 推荐(1) 编辑
摘要:堆(Heap)的基本概念 堆是一种完全二叉树(Complete Binary Tree),其性质使得堆可以高效地支持以下操作: 插入(Insert):将一个新元素加入到堆中。 删除最大/最小元素(Delete Max/Min):移除并返回堆中的最大(大根堆)或最小(小根堆)元素。 获取最大/最小元素 阅读全文
posted @ 2024-08-05 15:28 Tomorrowland_D 阅读(312) 评论(0) 推荐(1) 编辑
摘要:排序 1.冒泡排序 void bubblesort1(int* arr, unsigned int len) { //长度小于2就不用排序了 if (len < 2) return; for (int i = 0; i < len - 1; i++) { for (int j = 0; j < le 阅读全文
posted @ 2024-07-31 17:43 Tomorrowland_D 阅读(44) 评论(0) 推荐(1) 编辑
摘要:辗转相除法 辗转相除法(也称欧几里德算法)是一种用于计算两个整数的最大公约数(Greatest Common Divisor, GCD)的有效方法。其原理基于以下性质:若 ( a >=b ),则 gcd(a,b)=gcd(b,a mod b)。这意味着可以通过反复将较大数替换为它与较小数的余数来求得 阅读全文
posted @ 2024-07-24 01:01 Tomorrowland_D 阅读(55) 评论(0) 推荐(1) 编辑
摘要:试除法判断质数 试除法的思想 试除法是一种简单且直观的方法,用来判断一个数是否为质数。它的基本思想是:对于待判断的数 ( n ),从小到大地试除每个小于 ( n ) 的数 ( i ),如果 ( n ) 能被任何 ( i ) 整除且 () 和 (),则 ( n ) 不是质数;否则,( n ) 是质数。 阅读全文
posted @ 2024-07-24 01:01 Tomorrowland_D 阅读(54) 评论(0) 推荐(1) 编辑
摘要:约数(Divisors) 约数是指能整除某个整数的其他整数。例如,对于整数 ( a ),如果存在整数 ( b ) 使得 ( a = b*c ),那么 ( b ) 就是 ( a ) 的约数。 性质: 1 和自身是每个整数的约数: 每个整数 ( a ) 都有至少两个约数:1 和 ( a ) 本身。 约数 阅读全文
posted @ 2024-07-23 14:58 Tomorrowland_D 阅读(173) 评论(0) 推荐(3) 编辑
摘要:当我们谈论位运算时,通常是指在计算机中直接操作二进制位的运算。位运算主要包括位与(&)、位或(|)、位异或(^)、位取反(~)以及左移(<<)和右移(>>)操作。 1. 位与(&) 位与运算符用符号 & 表示,它的规则是对两个操作数的每一位执行逻辑与操作,只有两个操作数对应位都为 1 时,结果位才为 阅读全文
posted @ 2024-07-22 20:53 Tomorrowland_D 阅读(144) 评论(0) 推荐(2) 编辑
摘要:在 C++ 中,传递对象的引用而不是对象本身通常被视为一种最佳实践,特别是在处理较大的对象或复杂类时。这个做法有几个重要的理由和优点: 1. 性能优化 避免拷贝开销: 传递对象的副本可能会带来较大的性能开销,尤其是当对象很大或包含大量数据时。每次传递对象时都需要创建一个对象的副本,这会消耗额外的内存 阅读全文
posted @ 2024-07-15 17:54 Tomorrowland_D 阅读(62) 评论(0) 推荐(2) 编辑
摘要:sort排序规则 要理解为什么使用 std::abs(a) > std::abs(b) 进行排序会导致绝对值降序排列,我们需要深入理解排序算法的比较规则以及如何使用这些规则来实现特定的排序需求。 排序算法中的比较规则 std::sort 使用的是一种排序算法,它根据比较函数的返回值来决定元素的相对顺 阅读全文
posted @ 2024-07-15 01:09 Tomorrowland_D 阅读(328) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示