随笔分类 - 语言(CPP)
发表于 2024-02-26 15:26阅读次数:26评论次数:0
摘要:今天写树形dp,用匿名函数出现了极其玄学的报错,modernCPP给我上了一课 note: 'solve()::<lambda(auto:23, int, int)>::~()' is implicitly deleted because the default definition would b
阅读全文 »
发表于 2024-02-02 11:20阅读次数:91评论次数:0
摘要:今天做题的时候搞范围循环,发现不能对 vector 数组元素引用。 报错 vector<bool> prev(26, false); for (bool& x : prev) x = true; [错误] 非常量引用的初始值必须是左值 这很反常识,因为其他元素的 vector 我都是用这样来操作元素
阅读全文 »
发表于 2024-01-02 21:01阅读次数:930评论次数:0
摘要:简述 map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value。假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区分),我们用map来进行存储就是个不错的选择。 我们这样定义,map<string, int>,其中学生姓名用string类型,作
阅读全文 »
发表于 2023-12-05 10:00阅读次数:8评论次数:0
摘要:P1572 计算分数 看似数学题,实则数学思路很好想,主要是字符串处理难。 就只谈谈读入,读入一堆分数,又要判 / 又要判正负号。 纯用字符串一个个搞,麻烦的要死。 这时候就要借用语言本身对于数字的处理,对于数字就直接读数字类型,然后中间的读字符类型,这样判断正负号等难题都交给语言本身了。 scan
阅读全文 »
发表于 2023-12-02 14:33阅读次数:100评论次数:0
发表于 2023-12-02 11:26阅读次数:47评论次数:0
摘要:原码、反码、补码与 memset 再探 概述 三个计算机用来表达负数的形式。 原码 通过第一位的 来直接表示正数, 来直接表示负数。 然而计算机并不用这种方式。 反码 即把要表示的负数的绝对值对应的二进制全部取反来表示。 坏处是 有两种表达方式,全 和全
阅读全文 »
发表于 2023-11-28 19:25阅读次数:47评论次数:0
摘要:P1955 [NOI2015] 程序自动分析 基本思路 考虑到了不等号的不可传递性,所以决定只开相等的并查集。 然后突发奇想,觉得可以在找父亲的过程中判断是不是冲突。 然而这样就不能路径压缩,显然超时。 并且,根本没看清楚数据范围,实际上这题的数很大,裸开数组会爆炸。 这是一开始的代码 #inclu
阅读全文 »
发表于 2023-11-28 16:08阅读次数:4评论次数:0
摘要:P3879 TJOI2010 阅读理解 基本想法 开一个 map 组成的数组,然后每篇文章分配一个 map。查找的时候在每次都跑一遍。 显然 MLE 了。 改进 既然如此,录入的时候直接把单词出现对应的文章编号存起来就行,就是开一个 map<string, vector<int>>。 但是同一篇文章
阅读全文 »
发表于 2023-11-27 18:12阅读次数:10评论次数:0
摘要:STL之map 学籍管理 题目描述 您要设计一个学籍管理系统,最开始学籍数据是空的,然后该系统能够支持下面的操作(不超过 条): 插入与修改,格式1 NAME SCORE:在系统中插入姓名为 NAME(由字母和数字组成不超过 20 个字符的字符串,区分大小写) ,分数为 \(\te
阅读全文 »
发表于 2023-11-27 17:42阅读次数:8评论次数:0
摘要:STL之set 木材仓库 题目描述 博艾市有一个木材仓库,里面可以存储各种长度的木材,但是保证没有两个木材的长度是相同的。作为仓库负责人,你有时候会进货,有时候会出货,因此需要维护这个库存。有不超过 100000 条的操作: 进货,格式1 Length:在仓库中放入一根长度为 Length(不超过
阅读全文 »
发表于 2023-10-24 20:36阅读次数:9评论次数:0
摘要:while (l <= r) { mid = l + (r - l) >> 1; ...... } 这样是错误的! 由于>>的优先级问题,应用如下格式。 while (l <= r) { mid = l +( (r - l) >> 1); ...... }
阅读全文 »
发表于 2023-10-23 16:49阅读次数:145评论次数:0
摘要:iterator是通用的遍历容器的方式 通用模板 anySet <a...> as; anySet <a...>::iterator it = as.begin(); for (; it != as.end(); it++) { cout <<(*it);//即迭代器it指向的元素 } 四种迭代器
阅读全文 »
发表于 2023-10-06 10:00阅读次数:5评论次数:0
摘要:传址调用 void swap(int* p1, int* p2) { int temp = *p1; *p1 = *p2; *p2 = temp; } int main() { swap(&x, &y); } 引用调用 void swap(int& p1, int& p2) { int temp =
阅读全文 »