
C++与理论基础
a553455
Whatever makes you unhappy,fuck it.
展开
-
无CLOCKS_PER_SECOND定义问题
提示找不到CLOCKS_PER_SECOND的定义原创 2022-03-07 14:54:05 · 549 阅读 · 0 评论 -
C++关于虚函数知识相关的一点总结
1.当一个类声明了虚函数,这个虚函数性质具有继承的性质,在以后所有层次继承的类中,都是虚函数。2.通过基类的指针访问子类,调用虚函数,调用的都是子类的虚函数。3.并不是子类一定无法访问基类的虚函数,可以通过域名作用符访问。...原创 2020-03-11 10:47:55 · 233 阅读 · 0 评论 -
C++ 有符号数和无符号数比较可能会踩的坑
一、先看实验结果二、分析在VS编译器中,若有符号数和无符号数比较,会先将有符号数转换为无符号数。若不注意此问题,可能导致条件判断错误。...原创 2020-02-23 15:56:46 · 1291 阅读 · 0 评论 -
c++ 可使用未初始化的类内对象的条件
一、前言如果定义了类内static 成员变量(不考虑const类型变量)1、如果没有在代码里使用此变量,编译将不会出错。2、如果在代码里使用了此变量,将会报LNK2001无法解析的外部符号错误。由此可以初略得出类内static 成员变量(不考虑const类型变量)必须经过初始化才能使用。二、问题但是有另外一种情况:类内static 成员变量为类,可以在不初始化的情况下使用此变量名访问变...原创 2020-02-12 22:19:04 · 1105 阅读 · 0 评论 -
C++ 取余符号"%"在除数或被除数是负数的时候的情况
商向0取整原创 2020-02-02 15:50:48 · 1667 阅读 · 0 评论 -
用C++ 实现组合问题
例abcd,选择两个组合,先在左边选一个,再在那个数后面选择一个,依次选择,只能从左边往右边选,不能从右边往左边选,因为必然重复。结果按顺序有ab ac ad bc bd cd。str———原字符串;pri———要输出字符串的头指针;pstart——要打印字符串指针,指向这层循环要填充的字符串的位置;bstart——原字符串指针,指这层循环开始循环的位置;n——剩余要填充字符的个数;...原创 2020-09-28 14:49:51 · 714 阅读 · 0 评论 -
理清Unicode与UTF-8、ANSI与GB2312、GBK的关系,字符集和编码
需计算机一年多了,始终对字符集感到迷糊,下定决心好好理一理,今天终于真相大白。1、Unicode与UTF-8Unicode是字符集UTF-8是对Unicode的编码原因很简单,使用有些常用字符的时候太浪费空间,使用UTF-8编码可以节省空间。(还有UTF-16编码方式等等)Unicode是全球的标准,统一了计算机字符集。2、GB2312与GBKGB2312是GBK的子集,每个字符占两...原创 2020-01-14 21:11:40 · 385 阅读 · 0 评论 -
C++ 整数的右移和除法
对于无符号数整数的右移和除法表现一致,可以用右移来代替除法。对于有符号数中的负数右移只是算术右移,和除法不一样。除法是向0取整。算术右移有点奇怪,负数右移到最后都会变成-1....原创 2020-01-11 11:33:55 · 1901 阅读 · 0 评论 -
*a++与*++a
*a++等同于*(a++)*++a等同于*(++a)原创 2020-01-11 09:24:47 · 6498 阅读 · 3 评论 -
一起来学《深入理解计算机系统》 第五章 combine函数总结
conbine1每次循环调用函数求向量长度,做多次无用功conbine2优化:只求一次向量长度效率提升。conbine3减小函数调用,直接通过地址计算得到下一个累乘值效率下降-O1-O2O2比O1少了个每次重新从寄存器里面读dest值的过程。conbine4减小不必要的内存引用,因为dest的位置可能在向量中,所以conbine3不能自动优化成conbine4的...原创 2019-08-01 22:20:10 · 2935 阅读 · 0 评论 -
一起来学《深入理解计算机系统》 第五章 条件传送 条件控制转移?
先占坑,后面再填原创 2019-08-01 22:39:43 · 352 阅读 · 0 评论 -
一起来学《深入理解计算机系统》 第五章 家庭作业部分答案
5.13A:略B:未从xmm1使用上一次的数据,所以xmm1肯定不是关键路径上的寄存器。xmm0位于关键路径上,浮点数加法的延迟为3,所以CPE下界为3。C:整数数加法的延迟为1,所以CPE下界为1。D:首先,浮点数乘法可以与关键路径并行进行,且有多个浮点数乘法功能单元,多个加载器,所以只要配置够强大,浮点数乘法不能成为关键路径的阻碍。而关键路径浮点数加法的延迟为3。5.14A:因为...原创 2019-08-03 21:29:51 · 3402 阅读 · 2 评论 -
C++ 基类中静态成员初始化问题、基类头文件中定义类外变量重定义问题的解决过程
今天需要在基类中定义一个静态list以供所有继承此基类的成员使用,去掉无关函数,简单示例如下//基类头文件#pragma once#include <list>class base{public: static std::list<void*> deleteptr;};//继承类A头文件#pragma once#include "base.h"cl...原创 2019-08-09 11:32:12 · 3175 阅读 · 0 评论 -
C++ 内存不断上涨,问题定位方法小结
第一种情况是内存泄露,有两种根源1、使用new malloc等函数,却忘记释放,如果不知道出问题的具体代码段,搜索关键字依次查看即可。2、某些接口在内部进行了内存申请,并不是直观的有内存分配函数,未删除导致内存泄漏。第二种情况是数据拥堵比如QT中的信号与槽,如果发送信号太快,而导致槽函数来不及处理,将会导致信号中的数据在内存中堆积。同理如果链表没有设置最大大小,如果处理链表数据的速度比不...原创 2019-08-21 14:28:16 · 7539 阅读 · 1 评论 -
cout 输出缓冲区强制刷新
cout并不是随时刷新内容,一下三种情况将会导致强制刷新经过实验,std::cout << "the test! ";如此代码并不一定不会立马输出,操作系统空闲的时候就会输出。所以这种情况不够稳定。...原创 2019-08-26 10:46:23 · 1832 阅读 · 0 评论 -
C/C++ 可变参数(...)原理
在C/C++代码中有时会见到void simple_va_fun(int I,...)可变参数符号,但是一直不知道这个如何使用,以及原理。今天看到这个文章,感觉讲得很清楚,大概意思如下:原理以及使用如下,这个符号可以使传入参数的时候,可以一次性传入多个参数,如simple_va_fun(a,b,c,d);传入的所有参数都是在函数的栈中依次存放,而函数体内根据预定的类型(自己假设的)自行...原创 2019-08-26 13:59:03 · 263 阅读 · 0 评论 -
C++ primer 第八章IO库 小结
目录IO类——总体介绍文件输入输出string流心得体会IO类——总体介绍1、IO对象无拷贝或赋值函数2、条件状态将流当作条件使用的代码就等价于!fail(),而eof和bad操作只能表示特定的错误。3、管理条件状态可以通过存储iostate来保存cin状态,当cin在其他函数使用完之后恢复。4、管理输出缓冲以下三种方式可以强制刷新输出缓冲可通过cin.tie(&o...原创 2019-08-26 16:54:32 · 267 阅读 · 0 评论 -
C++ memcpy_s耗时测试
测试代码如下 const int length = 100 * 1024 * 1024; char* testme = new char[length]; char* testme2 = new char[length]; memset(testme2, 1, length); clock_t start = clock(); for (int i = 0; i < 100; i...原创 2019-09-04 14:33:04 · 2071 阅读 · 2 评论 -
一起来学深入理解计算机系统 习题5.8 CPE的下界
荒废了很久的深入理解计算机系统,最近捡起里,遇到一个有点棘手的问题练习题5.8书上答案刚刚看到这个题的时候,我以为除了最后一个表达式计算可以并行进行,其他的表达式都需要依次等待上一个乘法完成之后才能进行下一个乘法。例如:A4:先等到yz结果出来之后才能进行x(y*z)。看到答案之后才发现不是这样,先对答案进行一番解释:5: 浮点乘法操作的延迟,每个乘法操作需要等待5个周期才能出结...原创 2019-08-01 20:50:29 · 1993 阅读 · 8 评论