- 博客(22)
- 资源 (11)
- 收藏
- 关注
原创 C++代码基本优化小技巧
C++代码基本优化小技巧1.不存在指向空值的引用,意味着引用比指针的效率更高,因为在使用引用之前不需要测试它的合法性;指针可以被重新赋值以指向另一个不同的对象,但是引用总是指向它初始化时指定的对象。2.使用位运算代替加减乘除取余等计算。3.用switch代替多层if else,看汇编代码可知,switch有点空间换时间的意思。如果switch不可行,则将最常见的场景放在if分支链的最前...
2018-04-21 11:29:09 520
原创 面试百度的一道题
面试某互联网公司的一道题如下代码有没有什么问题:// 测试const#include <iostream> using namespace std;void func1(const string &str) { cout << str << endl;}voi
2018-04-18 12:15:49 151
原创 C语言中逻辑操作符的巧妙用法
C语言中逻辑操作符的巧妙用法1、循环左移int型变量循环左移k次,即a = a<<k | a>>16-k (设sizeof(int)=16) 2、循环右移int型变量a循环右移k次,即a = a>>k | a<<16-k (设sizeof(int)=16) 3、整数平均值int average(int x, i...
2018-04-17 11:28:02 698
原创 练习:对于非负整数0,1,2,....n-1的排序
题目:对于非负整数0,1,2,….n-1,随机放入一个大小为n的一维数组中,调整元素顺序,辅助空间为O(1)代码:#include&amp;lt;stdio.h&amp;gt; #include&amp;lt;stdlib.h&amp;gt; void change(int *a,int len); void main() { int a[] = {10,6,9,5,2,8,4,7...
2018-04-14 21:17:22 377
原创 C/C++:好书中遇到的各种例子(标明书名)
测试快速排序// 测试快速排序#include &amp;amp;amp;amp;lt;iostream&amp;amp;amp;amp;gt;using namespace std;int Partition(int a[], int low, int high) { int pivot = a[low]; while(low &amp;amp;amp;amp;lt; high) {
2018-04-14 19:49:00 108
原创 C/C++:秘籍类书中展示的各种情况
堆排序#include&amp;amp;amp;amp;lt;iostream&amp;amp;amp;amp;gt;using namespace std;void heapfy(int a[], int index, int heapsize){ int left = index*2+1; int right = left+1; int largest = index; if(left&amp;amp;amp;
2018-04-14 17:30:32 103
原创 C++ int long long double 等数据范围!
C++ int long long double 等数据范围由于机型的不同,确实存在int到底是几个字节的问题。具体见下表: 类型 32bit 64bit char 1 1 short int 2 2 int 4 4 long int 4 8 long long int 8 8 cha...
2018-04-13 11:29:46 2645
原创 C语言内存字节对齐小结
C语言内存字节对齐小结一、原则:1、结构体内成员按自身按自身长度自对齐。自身长度,如char=1,short=2,int=4,double=8,。所谓自对齐,指的是该成员的起始位置的内存地址必须是它自身长度的整数倍。如int只能以0,4,8这类的地址开始2、结构体的总大小为结构体的有效对齐值的整数倍结构体的有效对齐值的确定:1)当未明确指定时,以结构体中最长的成...
2018-04-13 11:14:43 383
原创 C++中 overload 、override、overwrite 之间的区别
C++中 overload 、override、overwrite 之间的区别Overload、Overwrite和Override的概念比较容易混淆,而且Overwrite和Override的中文翻译五花八门,让人很Confuse,顾保持英文原意:Overload 重载在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,但参数不同(包括类型、顺序不同),即函数重载。...
2018-04-12 21:32:06 203
原创 练习:二叉树的递归与非递归遍历(前序、中序、后序)
二叉树的递归与非递归遍历(前序、中序、后序)二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就 是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历 中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现...
2018-04-12 16:11:40 270
翻译 Pure Virtual Function Call
这里有详细的解释 https://www.codeproject.com/Articles/14879/Pure-Virtual-Function-Call当一个对象包含一个纯虚函数(一个未实现的函数)时,这个对象根本不能被构造,因此纯虚函数不能被称为全部。试试下面的代码:class Parent{public: Parent() { } ~Parent() { C...
2018-04-12 11:30:57 7788 1
原创 valgrind使用小测试
一、测试代码// 常见内存问题#include <stdlib.h>#include <stdio.h>int main(void){ char *ptr = malloc(10); ptr[12] = 'a';// 内存越界 memcpy(ptr+1, ptr, 5);// 踩内存 char a[10]; a[12...
2018-04-12 09:20:59 407
原创 几个常用的gdb调试命令
几个常用的gdb调试命令一、list命令(同l)1、显示某一行:l 行数 2、显示某个区间:l 行数1,行数2二、info命令1、显示所有断点信息:info break 2、显示当前运行行:info s三、设置断点1、b(同break) 行数:设置断点; 2、d(同delete)断点号:删除断点;四、运行命令1、r(同run):运行,每次都是从...
2018-04-11 19:07:40 2215
原创 Makefile&Shell
作者:qin meng 链接:https://www.zhihu.com/question/22697903/answer/36611257 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。GNU的Make和脚本不是一个东西,虽然看着很像其实完全不是一码事。为什么选择makefile,个人觉得有以下几点: 1、首先,Shell有好多种, Bash、ash...
2018-04-10 10:45:36 706
原创 make makefile cmake qmake都是什么,有什么区别?
作者:玟清 链接:https://www.zhihu.com/question/27455963/answer/36722992 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。makemake 是用来执行Makefile的MakefileMakefile是类unix环境下(比如Linux)的类似于批处理的”脚本”文件。其基本语法是: 目标+依...
2018-04-10 10:13:01 448
原创 Getmemory的几个经典的关于内存的问题
Getmemory的几个经典的关于内存的问题// TEST1void GetMemory1(char *p){ p = (char *)malloc(100);}void Test1(void) { char *str = NULL; GetMemory1(str); strcpy(str, "hello world"); print...
2018-04-08 20:43:00 3665
转载 Java常见的几种单例模式
常见的几种单例模式单例模式是一种常用的软件设计模式,在它的核心结构中值包含一个被称为单例的特殊类。一个类只有一个实例,即一个类只有一个对象实例。对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;售票时,一共有100张票,可有有多个窗口同时售票,但需要保证不要超售(这里的票数余量就是单例,售票涉及到多线程)。如果不是用机制对窗口对...
2018-04-05 14:52:08 344
原创 CUDA在Ubuntu16.04中的安装教程
CUDA在Ubuntu16.04中的安装教程一、源码下载nivida的官方网址CUDA在Ubuntu16.04中的安装教程https://developer.nvidia.com/cuda-toolkit-archive二、卸载旧版cuda安装之前先卸载已经存在的驱动版本,使用命令:sudo apt-get remove --purge nvidia*三、禁用nou...
2018-04-04 22:00:38 294
转载 QT信号与槽机制
QT开发——QT信号与槽机制一、QT消息模型QT封装了具体操作系统的消息机制,遵循经典的GUI消息驱动事件模型。QT定义了与操作系统消息相关的自己的概念,即信号与槽。信号signal是由操作系统产生的消息。槽slot是程序中的消息处理函数。connect将系统消息绑定到消息处理函数。信号到槽的连接必须发生在两个QT对象间。bool QObject::connec...
2018-04-03 19:39:15 382
原创 MPI:MPI_Probe应用的例子
MPI:MPI_Probe应用的例子说明MPI_Probe()和MPI_Probe()函数探测接收消息的内容,但不影响实际接收到的消息。我们可以根据探测到的消息内容决定如何接收这些消息,比如根据消息大小分配缓冲区等等。需要说明的是,这两个函数第一个是阻塞方式,即只有探测到匹配的消息才返回;第二个是非阻塞方式,即无论探测到与否都立即返回。函数原型:int MPI_Prob...
2018-04-03 10:33:13 4334
转载 MPI函数
管理函数Int MPI(int *argc,char **argv)Int MPI_Finalize(void) 清除MPI的所有状态Int MPI_Inilialized(int flag) 检查是否调用了MPI_INITInt MPI_Error_String(int errorcode,char *string ,int *len) 检查MPI函数错误进程组操作函数...
2018-04-03 09:24:35 919
原创 Linux 中各个文件夹的作用
Linux 中各个文件夹的作用/ 根目录 包含了几乎所的文件目录。相当于中央系统。进入的最简单方法是:cd /。/boot 引导程序,内核等存放的目录这个目录,包括了在引导过程中所必需的文件。在最开始的启动阶段,通过引导程序将内核加载到内存,完成内核的启动(这个时候,虚拟文件系统还不存在,加载的内核虽然是从硬盘读取的,但是没经过Linux的虚拟文件系统,这是比较底层的东西来实...
2018-04-02 17:27:50 176
codeblocks-setup.zip
2020-02-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人