笔记
文章平均质量分 66
Tao_758
404 Not Found
展开
-
手动添加 Grub 启动项
通过编辑 /etc/grub.d/40_custom,实现手动添加 grub 启动项。原创 2023-02-27 21:24:37 · 1962 阅读 · 0 评论 -
IEEE 浮点数:存储及方式,学习与记录,总结与反思
摘要:看了看资料,确认过眼神,还是我驾驭不了的浮点数。浮点数的内容似乎十分庞大,我一时还无法完全理解,因此本篇只记录IEEE标准的 float 的二进制表示方式,能够学会手动将 float 的二进制与十进制相互转换即可。另外会学习一下 float 的精度是如何计算出来的。本篇大部分参考小土刀的:【读薄 CSAPP】壹 数据表示 一文。自己仅作摘录、整理和略微的总结。IEEE 浮点数标准IEEE标准中,浮点数以如下公式表示:(−1)sM2E(-1)^sM2^E(−1)sM2E其中,s .原创 2020-10-26 22:20:17 · 2439 阅读 · 1 评论 -
C++ cout格式化输出,精确控制小数点后位数
仰天地之正气,法古今之完人。 ——同济大学老校训昨天做OJ遇到一题要求把结果保留两位小数输出。惊觉自己完全没有掌握该技能。因此特地去网上搜了一下,发现C++ 的标准输出流的格式化输出很有趣。正好作为今天的日更记录下来:首先参考资料镇贴:【C++】cout格式控制控制cout输出浮点数的精度首先是我用到的保留两位小数的输出方式:#include<iomanip>...cout<<setiosflags(ios::fixed); //保证setprecision().转载 2020-08-18 23:00:08 · 1437 阅读 · 0 评论 -
TVM上手, module ‘tvm‘ has no attribute ‘var‘
按照官方文档装了一下,步骤还有点多。最后在跑简单的小程序的时候卡住了,遇到了报错:Traceback (most recent call last): File "tvmtest.py", line 47, in <module> n = tvm.var("n")AttributeError: module 'tvm' has no attribute 'var'发现新版本的tvm里,var、placeholder等都移到了 tvm.te下,因此改为tvm.te.*即可:i原创 2020-08-17 22:54:29 · 741 阅读 · 0 评论 -
安全性的基本原则——《程序员修炼之道》笔记
人一生的道路很长,一次违背道德就会有第二次,所以一次都不能有,无论以什么样的理由。入职后发现,公司对安全的要求高到苛刻。但也从各种对安全的强调以及反例中初步认识到了黑客们的工作方式。虽然学习安全编程规范简直让我欲仙欲死,但确实能意识到这是一件很重要的事情。刚好前几天读《程序员修炼之道》,里边提到了安全性的基本原则,就刚好附在这边,也算是个笔记了~将攻击面最小化;最小特权原则;安全的默认值;敏感数据要加密;维护安全更新;...原创 2020-08-15 23:17:18 · 209 阅读 · 0 评论 -
std::move() 怎么用?用or不用?
在隆冬,我终于直到,我身上有一个不可战胜的夏天。 ——阿尔贝·加缪今天提交了一次代码,短短一百多行里,被各位commiter提了18个问题,其中三次提到函数返回值使用std::move()。返回值是一个对象时,使用std::move()就会调用移动构造函数,将形参的对象移动至调用函数以赋值的对象。其实说白了都是考虑内存开销以及性能。但是又看到很多地方讲到,在很多简单场景下,编译器其实是会做掉这个优化,编译器如果发现你函数的返回值是初始化一个新的对象实例,那么就会在新的对象示例的地址原地声明形.原创 2020-08-11 23:25:36 · 422 阅读 · 0 评论 -
C++ 值传递、指针传递、引用传递 —— 临渊羡鱼,不如退而结网
他成为了自己的上帝,奉恐惧为神灵,向宇宙播撒自己的教众。今天做OJ的时候,非常希望用全局变量,但无奈需要反复初始化,终于被逼去学习如何向函数传引用。之前一直很不理解为什么特别多的C++代码热衷于在函数中传递指针或是引用,开始总以为与传递值并无区别,反而因为用了指针增加了风险。直到上周培训,在被迫写了三天C语言之后,才终于有所体会。而今天算是正式地对其有了切身的体会。参考了博客园一位朋友的文章,原文要比我的全面、详细很多:C++ 值传递、指针传递、引用传递详解废话不说了,直接上三者之间的含义及用例.原创 2020-08-10 23:36:42 · 224 阅读 · 0 评论 -
动态内存与智能指针是什么?make_shared()又是什么?
我们终于老的,可以谈谈未来。 ——《如丧》今天看代码的时候,看到一个不认识的东西,make_shared(),去查了查发现是智能指针相关的东西,正好记录下来。考虑对象的生命周期的事情,全局对象在程序启动时被分配,在程序结束时销毁。对于局部自动对象,进入其所在的程序块时被创建,离开块时被销毁。局部static对象在第一次使用前分配,程序结束时被销毁。而在这种约定俗成的生命周期之外,也可以显式地被创建和释放。这就是动态内存。而为了更安全地使用动态对象,标准库定义了两个智能指针.原创 2020-07-25 23:18:12 · 250 阅读 · 0 评论 -
救救救救救救命的Pycharm防手贱!——Pycharm之历史文件记录
给岁月以文明,而不是给文明以岁月。 ——《三体》今天终于要提交代码了,带着一颗忐忑的心,准备把写差不多的代码移到git仓目录下,做最后的完善。搞着搞着觉得好像搞错了,就删掉仓下的,准备重新复制一份。结果回到原目录才发现刚才搞成了剪切。心里一阵凉凉。由于自己把远程服务器映射到了windows下,而在windows下删除远程服务器的东西是几乎没有恢复机会的。不幸中的万幸是曾经备份过一个两天前的版本。只得从两天前的进度重新做起。但苍天有眼,天无绝人之路,突然灵光一闪,去Google了.原创 2020-07-24 23:25:00 · 1122 阅读 · 0 评论 -
C++ 注意事项记录
如果没能一次成功,那就叫它1.0版吧。最近写代码越来越谨小慎微,生怕犯一些低级错误。也简单记录了几个注意事项,权当笔记了。C++中不提倡使用 vector。因为 vector 和其他类型的实现稍有区别。它甚至不是一个标准的STL容器。(附上 cppreference中对vector的解释: vector基类函数通常需要定义一个虚的析构函数,即使该函数不执行任何实际操作也是如此。(另外稍微注意下,构造函数不可以是虚函数)...原创 2020-07-23 23:12:17 · 147 阅读 · 0 评论 -
C++ stringstream之妙用
编程时要保持这种心态:就好象将来要维护你这些代码的人是一位残暴的精神病患者,而且他知道你住在哪。 ——Martin Golding今天在一位前辈指导下学着用了stringstream来处理字符串,非常好用。那今天就简单总结一下它的用途和用法吧,听说在leetcode刷题中也很有用。以下内容摘自别人的blog:stringstream常见用法介绍stringstream是包含在中的,其中定义了三个类:istringstream、ostringstream 和 stringstream,分别用.转载 2020-07-22 22:44:11 · 267 阅读 · 1 评论 -
C++ 容器 增删改查函数汇总
“我步入丛林,因为我希望生活得有意义,我希望活得深刻,汲取生命中所有的精华,把非生命的一切都击溃,以免让我在生命终结时,发现自己从来没有活过。”——死亡诗社的誓词。本来都打算取消坚持日更的计划了,因为发觉最近几天的内容越来越敷衍了。但是真的到要放弃的那一刻又有点舍不得,刚好今天有想要总结的内容,罢了还是继续来吧。C++分为顺序容器和关联容器;顺序容器包括:vector, string, deque, array, list, forward_list;关联容器包括两类:set, map.原创 2020-07-21 23:08:57 · 530 阅读 · 0 评论 -
C++ 引用与解引用;指针、地址与对象
自责中往往有种奢侈。我们自责时,往往觉得别人无权再责备我们。 ——王尔德指针曾是横亘在我与程序设计之间的大山之一。程序中只要出现星号就会成为我的噩梦,而对于这一切我完全找不出原因。到了现在,可能更多的已经是心里上的一种恐惧。所以一定要想办法破除掉。曾经把我折磨地欲仙欲死的一种情况如下:int num = 6;int *p = #int another = 10;p = &another;明明第二行的p中带了星号,怎么第四行中又不带了,那到底是带还是不.原创 2020-07-20 23:15:19 · 938 阅读 · 0 评论 -
一直以来的困惑:头文件的价值及其必要性
我亲眼目睹,每一个迈向死亡的生命正在热烈生长。 ——《巨人的陨落》受Python的影响,我一直以为#include与import是同样的意思,就是把其它文件中的各种内容引入当前文件。但是带着这样的思路去阅读C++代码总是屡屡受阻。这次终于搞清楚了,把看到的一些点记录下来。\#include是一个来自C语言的宏命令,它在编译器进行编译之前,即在预编译的时候就会起作用。#include的作用是把它后面所写的那个文件的内容,完完整整地、一字不改地包含到当前的文件中来。值得.原创 2020-07-19 11:59:44 · 267 阅读 · 0 评论 -
锁机制——锁的分类及其含义
他总忘不了那样的日子,一个先令就能买到十三只上好的牡蛎。这一次记录一点并发编程方面的内容——锁机制,也是在某一次课程中听到的。这是一个我之前毫无了解的概念,而并发编程也一直是我不敢触碰的高深知识。今天终于决定踏出第一步。参考资料:偏向锁、轻量级锁、自旋锁、重量级锁锁机制-自旋锁、偏向锁、轻量级锁、重量级锁Synchronized的原理及自旋锁,偏向锁,轻量级锁,重量级锁的区别锁从宏观上分类,分为悲观锁与乐观锁。乐观锁乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去.原创 2020-07-18 23:55:48 · 480 阅读 · 0 评论 -
C++ 虚函数初探
失败是上帝以说不的方式,帮你逼近真相。最近学习代码的时候看到好多虚函数,这是一个让人感到迷惑的名字。刚开始看到virtual这个关键字我一度以为这可能不是真的函数,而是另有神奇的功能。后来去查了一下,在《C++ Primer》中找到了相关的内容:C++中基类将类型相关的函数与派生类不做改变直接继承的函数区分对待。对于某些函数,积累希望它的派生类各自定义适合自身的版本,此时基类就将这些函数声明成虚函数。说简单些就是,《C++ Primer》中还提到在C++中,当我们使用基类的引用(或指针).原创 2020-07-17 23:51:07 · 104 阅读 · 0 评论 -
左值与右值 C++中的特有含义
做一个信息时代的独立阅读者。前几天看到《C++ Primer》中提到了左值右值的概念,当时也没太当回事,以为就是等号的左右两侧。直到后来听了一节C++课程,里边的老师强调了这个概念,才觉得应该关注一下。在某博客理解C和C++中的左值和右值中找到了一个容易理解的定义:左值代表一个在内存中占有确定位置的对象(换句话说就是有一个地址)。右值通过排他性来定义,每个表达式不是lvalue就是rvalue。因此从上面的lvalue的定义,rvalue是在不在内存中占有确定位置的表达式。在某些情况下,如.原创 2020-07-16 23:50:35 · 137 阅读 · 0 评论 -
C++ #号、##号
“有人认为爱是性,是婚姻,是清晨六点的吻,是一堆孩子,也许真是这样的,莱斯特小姐。但你知道我怎么想吗,我觉得爱是想触碰又收回手。” ——塞林格 《破碎故事之心》前两天看业务代码的时候看到了#号,因为自己从Python转过来,因此总觉得像在看注释。拖了几天,今天就来整理一下C/C++中的 # 与 ##。下面内容整理自以下博客:C语言宏与单井号(#)和双井号(##)C/C++ 中##(两个井号)和#(一个井号)的意思在C语言的宏中,# 的功能是将其.原创 2020-07-15 23:28:23 · 1784 阅读 · 0 评论 -
C++ 堆与栈、空指针的释放等
今天在公司听了一堂C++课程,收获颇丰。学到新东西的快乐真的可以盖过其他所有。本来今天可以写一篇长长的日更,但是由于回家后大部分的时间花在了用PS做组内的一幅图,导致没有足够的时间在12点到来之前写很多。只能写一点比较明确、印象也比较深刻的内容了。1. 堆与栈老师今天提到 STL 容器中,不同的容器运行时数据存储的位置是不一样的。诸如array等是运行在栈中的,而vector、string是运行在堆中的。因此,初始化array时如果指定很大的size是有可能导致栈溢出的,而vector、string原创 2020-07-13 23:43:10 · 1266 阅读 · 0 评论 -
设计模式抛砖
人的愤怒往往来自自己的无可奈何。 ——王小波今天又是颓废的一天,也不知道拿什么来水日更,突然刷知乎的时候看到了力扣的一篇讲设计模式的回答,有些内容对我比较有启发,就以此为基础,搞一下今天的日更吧。先附上知乎:力扣的回答。0. 概括那篇回答太长,我已经没有精力全部认真读完,所以就把给我留下印象的部分记录下来。面向对象的特点是可维护、可复用、可扩展、灵活性好,它真正强大的地方在于:随着业务变得越来越复杂,面向对象依然能够使得程序结构良好,而面向过程却会导致程序越来越臃肿。让面向.原创 2020-07-11 22:13:31 · 140 阅读 · 0 评论 -
水日更
今天本来还挺开心的,工作也蛮顺利,开会的时候提出了很多问题。导师见面还拍了拍我肩膀。甚至还有学校的毕业大礼。但是由于种种原因,突然有很不开心的一点。今天从城市客厅回到公司,收拾了半天,一直到现在才终于下班。看了看时间差点就要断了日更。也没什么技术方面的准备,只能用手机赶紧这下一点东西。也算是一个倾诉,也算是水个日更。今天的感慨之一,只恨杰哥不是女儿身。今天的感慨之二,为什么明明自觉还是蛮优秀,却常常只能做一个令双方都尴尬的电灯泡。到底是哪里不配了……罢了罢了,大概只有C++才不会丢下我...原创 2020-07-10 23:51:54 · 643 阅读 · 0 评论