随笔分类 - C++学习
摘要:c字符串功能练习: 获取一行字符串,然后,在这行字符串中搜索是否包含一个小字符串
阅读全文
摘要:在学习《深入理解计算机系统》的浮点数存储里,我想到一个问题,单精度浮点数中,非规格浮点数最大数是几? 符号位:0 指数域:00000000 小数域:11111111111111111111111 指数域全0,小数域全1,符号位0,这个数应该是非规格数中最大的一个了,那么这个数存在吗?计算机是这样存储
阅读全文
摘要:网址:www.gmplib.org 我下载的是 6.1.2版本:https://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2 执行操作如下: 用c语言编一个例子: 用c++要简单很多: 注意,编译时要链接gmp库:
阅读全文
摘要:float类型占四个字节,每个字节占8位,总共32位,其内存结构如下图: 31位为符号位:0表示正数,1表示负数31~23位:共8位表示指数位,内存存储数据从0~2^8-1=255,由于指数可以是正也可以是负,所以指数位采用移位存储表示数据,8位有符号有可表示数据从-128~127,所以指数位表示的
阅读全文
摘要:在c语言中,根据类型的不同,求绝对值函数也不同。 求int类型用abs,求浮点类型用fabs。 而且这两个函数的所在头文件也不同: 但是,该问题在c++中得到妥善的解决:因为c++的函数可根据参数类型不同,进行重载(就是选择不同的同名函数),所以,c++中求绝对值只有abs即可覆盖int和doubl
阅读全文
摘要:在c/c++中,因为浮点数在内存中的表示是不精确的,会有很微小的误差,所以判断是否为0,就看它的绝对值是不是<=eps。 eps可以看成是epsilon的缩写,可以用来表示一个无穷小的量,通常取eps的值为:1e-10~1e-8 之间。如: 原理: IEEE754标准中,单精度浮点数(4byte)表
阅读全文
摘要:浮点数存储标准为:IEEE754。 一、定义:什么是IEEE754 浮点数在C/C++中对应float和double类型,我们有必要知道浮点数在计算机中实际存储的内容。IEEE754标准中规定float单精度浮点数在机器中表示用 1 位表示数字的符号,用 8 位来表示指数,用23 位来表示尾数,即小
阅读全文
摘要:人们最早就在Quake3源代码中发现了类似如下的C代码,它可以快速的求1/sqrt(x),在3D图形向量计算方面应用很广。 人们在QuakeIII源码发现了这个函数,于是很自然的认为这是卡马克(John Carmack)的杰作,其中0x5f3759df这个数被称为卡马克密码,我们在下面称这个数为ma
阅读全文
摘要:目前(2019年2月22日)仍然是 G++ 4.8.4 , 终端运行,命令行: g++ test.cpp -o test ,而g++ 4.8.4默认标准是: -std=gnu++98 。 g++到了gcc6才把默认标准直接改为 gnu++14 ,参考资料:https://gcc.gnu.org/gc
阅读全文
摘要:1、包含头文件<iomanip>,附注manip是manipulator,操控的简写。 2、第一种写法: 第二种写法: 第三种写法:
阅读全文
摘要:In C, we have used Macro function an optimized technique used by compiler to reduce the execution time etc. So Question comes in mind that what’s ther
阅读全文
摘要:这样才不会出错,c_str()返回的是一个临时指针,不能对其进行操作,因为c++中,临时量都是以常量创建,不可修改。 语法: const char *c_str(); c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同.,这是为了与c语言兼容,在c语言中没有string类
阅读全文
摘要:关键字 constexpr 是C++11中引入的关键字,是指值不会改变并且在编译过程中就得到计算结果的表达式。(运行中得到结果的不能成为常量表达式,比如变量)。 声明为constexpr的变量一定是一个常量,而且必须用常量表达式初始化: 一般来说,若果一旦认定变量是一个常量表达式,那就把它声明为co
阅读全文
摘要:所有的标准库容器都定义了相应的迭代器类型。迭代器对所有的容器都适用,现代 C++ 程序更倾向于使用迭代器而不是下标操作访问容器元素。 1、iterator,const_iterator作用:遍历容器内的元素,并访问这些元素的值。iterator可以改元素值,但const_iterator不可改。容器
阅读全文
摘要:C++的string常见用法,在网上看到一篇,但是不能在c++11编译器下运行,我修改了下,还没改完: 参考:https://www.cnblogs.com/engraver-lxw/p/7581540.html
阅读全文
摘要:在刷题时,总发现有的只写一行头文件 #include <bits/stdc++.h> 。 查阅资料后,才知道原来:#include<bits/stdc++.h>包含了目前c++所包含的所有头文件! 如下代码: 等我们使用了stdc++.h后,同样的代码可以写成: 爱刷题的同学们有福了,大部分oj都支
阅读全文
摘要:1、ubuntu16.04版本已经集成了free pascal最新的3.0版,只需要安装就可以了。 sudo apt install fp-compiler 在ubuntu里面,fp-compiler是一个虚拟包,一般都是指向最新的版本。 2、安装完毕后,就可以用下面的命令来编译fpc包了。 fpc
阅读全文