- 博客(26)
- 收藏
- 关注
原创 使用VMware tools工具看不到共享文件夹目录解决方案
设置共享目录 选择需要共享的虚拟机,右击设置 接着在root权限下输入如下命令 mkdir /mnt/cdrom mount /dev/cdrom /mnt/cdrom cd /mnt/cdrom cp WMwareTool....tar.gz ../ //复制到上层目录下 cd .. tar -zxvf VMwareToo......tar.gz cd wmware-tools-distrib ./vmware-install.pl 最后一句代码执行之后结果如下: The instal
2020-12-17 01:02:21
2265
原创 从缺陷中学习C++(09)
4.文件处理问题 4.1写文件时没有调用fflush int main() { FILE* fp; fp = fopen("info.log", "w"); fprintf(fp, "%s", "hello world!!"); fclose(fp); return 0; } 本来想记录日志文件,在操作后记录一些信息以便调试,当程序退出时日志文件可能不完整,因此显示调用fflush强制将缓冲区写入文件 int main() { FIL
2020-07-02 10:31:20
213
原创 从缺陷中学习C++(08)
3.库函数问题 snprintf函数format参数问题 char buf[10] = ""; char src[10] = "hello %s"; int len = snprintf(buf, sizeof(buf), src); printf("buf = %s\n", buf); 代码执行后会打印不可预期字符或者出现段错误,原因是snprintf函数本身是可变参数函数,如果第三个参数中包含定义格式化的字符串,由于没有第四个参数,函数将会访问一个不确定的内存地
2020-07-01 00:31:27
212
原创 从缺陷中学习C++(06)
2.编译问题 动态链接库加载错误版本 在程序test.cpp中,mian函数使用了动态链接库libiscore.so中的函数avg_score,如下: float avg_score(int s){ return (float)s / 12; } int main(){ int sum = 4000; float average = avg_score(sum); cout<<"score per morth:"<<average<&l
2020-06-25 15:11:25
206
原创 从缺陷中学习C++(07)
6.结构体成员变量初始化隐患 struct Rectangle { int length; int width; }; void main() { struct Rectangle r = { 3, 2 }; } 这段代码随然编译运行没问题,但是 struct Rectangle { int length; int width; }; void main() { struct Rectangle r = { r.length = 3, r.width = 2 }; } 一旦结构体
2020-06-25 00:33:26
122
原创 从缺陷中学习C++(05)
5.精度问题 void main() { float f = 1 / 3.0; float f_1 = 0.33333333; if (f == f_1) { printf("Equal\n"); } else { printf("NO Equal\n"); } 上述程序运行结果为Equal,而下边代码运行结果为No Equal,产生这个的原因是因为在计算机中,浮点数表示精度位数有限,所以在浮点数比较时,不建议使用==、<=、!=等比较运算符。 void main(.
2020-06-25 00:20:26
166
原创 从缺陷中学习C++(04)
4.数据溢出 void main() { int a = 0xffffffff; if (a < 0) { a = -a; } cout << a; } 本想取a的相反数,但取反后溢出,输出为1;int的范围是-2147483648~2147483647,如果对-2147483648取反之后得到的数将是溢出之后的1。 //正确代码 void main() { int a = 0xffffffff; if(a == 0xffffffff){
2020-06-24 22:26:03
169
原创 从缺陷中学习C++(03)
3.数组越界 数组越界问题一般都是访问了访问不到的地址空间导致程序出错。 void main() { const int size = 5; int arry1[size]; float arry2[size]; for (int i = 0; i < size; i++) { arry2[i] = size - i - 2.1; arry1[(int)arry2[i]] = i; } } 代码arry1[(int)arry2[i]] = i;中arry1的下标出现了负数,
2020-06-24 22:12:21
161
原创 从缺陷中学习C++(02)
2.宏定义问题 利用宏定义计算(2*x + 2*y)*z //错误代码 #define PERIMETER(X,Y) 2*X + 2*Y void main() { int x = 5, y = 2, z = 8; int result = PERIMETER(x, y) * z; cout << result << endl; } 由于宏替换本身只是文本替换,上述代码变成result = 2*x +2*y*z; //正确代码 #define PERIME
2020-06-24 21:56:01
200
原创 从缺陷中学习C++(01)
基础问题 1.运算符优先级问题 //错误代码 //To get 2*n + 1 int func(int n){ return n<< 1 + 1; } 期望计算2*n + 1,运行结果确是4*n,原因是"+"优先级比"<<"高。 //正确代码 int func(int n){ { return (n<< 1) + 1; } 顺便提一下遇到一个关于cout输出流的问题 cout<< 1<< 2 + 1;
2020-06-24 18:48:53
245
原创 C++98/11 多线程与高并发
基本概念: 并发:两个或多个任务同时进行;一个程序同时执行多个独立的任务 并发的假象:cpu的上下文切换 使用并发的原因:同时干多件事,提高效率 可执行文件:.exe文件,可以在Windows下运行,Linux下,./文件名; 进程:一个可执行文件运行起来了,即创建进程 线程:每个进程,都有一个主线程,这个主线程唯一的,也就是一个进程中只有一个主线程,进程运行起来,主线程也运行起来 线程:用来执行代码的,一条代码的执行(通路)道路;除了主线程外,可以创建其他线程,每创建一个线程,在同一时刻就可
2020-06-17 16:47:20
1629
原创 期末考试算法题终结
(1)使用任意算法解决如下问题 问题:有 N 件物品和一个容量为 V 的背包。第 i 件物品的费用是 w[i],价值是 p[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 举例:假设v=20,w={5,6,3,7,8},p={6,7,4,8,9},则最大价值为23 (2)使用分治法解决排序问题 问题:有一组无序的整数,现设计一种算法使该组数有序。 举例...
2019-12-25 09:22:41
822
5
原创 从哈希表到红黑树
散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(H...
2019-11-09 16:13:19
452
原创 MySQL数据库的基本操作(1)
数据库的基本操作 创建数据库:create database 数据库名称; 查看数据库:show databases; 查看已创建的数据库信息:show create database 数据库名称; 修改数据库的编码方式:create database 数据库名称 character set 编码方式; 切换数据库:use 数据库名称; 查看当前使用数据库:select database(); ...
2019-11-09 10:11:19
265
原创 顺序表的基本操作
顺序表:一种简单的线性结构,逻辑上相邻的数据在计算机内的存储位置也是相邻的,中间不允许有空值,但插入、删除操作需要移动大量元素。 顺序表三要素: 1.用elems记录存储位置的基地址(首地址) 2.分配一段连续的存储空间size 3.用Length记录实际的元素个数,即顺序表的长度 在这里插入代码片 #include<iostream> using namespace std; #...
2019-11-09 00:44:01
330
转载 B树,B+树,B*树详解
B-树(也叫B树)概念:一棵m阶B树(balanced tree of order m)是一棵平衡的m路搜索树 特点: 1、根结点至少有两个子女; 2、每个非根节点所包含的关键字个数 j 满足:┌m/2┐ - 1 <= j <= m - 1; 3、除根结点以外的所有结点(不包括叶子结点)的度数正好是关键字总数加1,故内部子树个数 k 满足:┌m/2┐ <= k <= m ;...
2019-11-08 15:27:55
664
原创 C/C++实现归并排序
归并排序: 1.归并排序描述:将两个已经排序的的序列合并,采用分治法。 2,原理:将数组不断划分,化成两个或一个或,设置两个指针,分别指向数组左端和右端,比较两端数组元素大小,将小的元素放入合并空间,移动指针,重复步骤。 图解: #include<iostream> ...
2019-11-02 00:26:11
253
原创 C/C++实现希尔排序算法
希尔排序: 1.希尔排序算法描述:希尔排序是一种缩小增量的插入排序。 2.原理:选取一个合适间隔gap,排数,再缩短间隔gap,排数,依次下去,直至排数完成。 例如,将一串数字5,4,2,0,7,8,1,3,9,6用希尔排序从小到大排序的步骤如下: 第一步:设置间隔为4,进行排数,得5,4,1,0,7,6,2,3,9,8 第二步:设置间隔为1,进行排数,得0, 1, 2, 3, 4, 5...
2019-10-26 11:12:30
566
原创 C/C++实现插入排序算法
插入排序: 1.算法描述:插入算法是一种简单直观且稳定的排序算法。 2.原理:每一次将一个待排序的数据按其大小插入已排序的数据中的适当位置。 例如,将一串数字5,4,2,0,7,8,1,3,9,6用插入排序从小到大排序的步骤如下: 第一步:第一个数默认已排序,将第二个数与第一个数比较,得4,5,2,0,7,8,1,3,9,6 第二步:将未排序的第三个数插入到已排序的数据的合适位置,结果为...
2019-10-25 18:43:39
247
原创 C/C++ 实现冒泡排序算法及优化
冒泡排序: 1.冒泡排序描述;冒泡排序(Bubble Sort)是一种较简单的排序算法。 2.原理:依次比较相邻的两个元素,如果第一个比第二个大,则交换他们两个,不断重复,直至排序完成。 例如,将一串数字5,4,2,0,7,8,1,3,9,6用冒泡排序从小到大排序的步骤如下: 第一步:比较前后两个数字大小关系,如果前一个数大于与相邻的下一个数就交换位置,得4,2,0,5,7,1,3,8,6...
2019-10-25 11:29:14
462
原创 C/C ++ 实现选择排序及优化
选择排序: 1.选择排序描述:选择排序(Selection Sort)是一种简单直观的排序算法。 2.原理:每次从未排序的序列中选出最大(小)的一个放在已排序 的后面。 例如,将一串数字5,4,2,0,7,8,1,3,9,6用选择排序从小到大排序的步骤如下: 第一步:找出最小数字0,并与第一个数字5进行交换,得到0,4,2,5,7,8,1,3,9,6 第二步:在未排序的数字中继续找出最...
2019-10-25 00:41:10
669
翻译 一招速记十大排序算法比较图
你是否在为排序算法的时间复杂度、空间复杂度和稳定性的记忆而绞尽脑汁。下面一首打油诗帮你牢记它。 常见排序算法 中文名称 英文名称 平均时间复杂度 最坏时间复杂度 最好时间复杂度 空间复杂度 稳定性 选择排序 Selection O(n^2) O(n^2) O(n^2) 1 不稳定 冒泡排序 Bubble ...
2019-10-24 13:42:46
1140
原创 小白一小时攻克推箱子游戏
游戏布局: 项目需求: 实现一款推箱子游戏,效果如下图所示,具体规则: 1.箱子只能推动而不能拉动; 2.如果箱子前一格是地板或箱子目的地, 则可以推动一个箱子往前走一格,如果箱子已经在 箱子目的地则不能再推动; 3.推箱子的小人不能从箱子目的地上直接穿过; 4.注意不要把箱子推到死角上,不然就无法再推动它了; 5.所有箱子都成功推到箱子目的地,游戏结束,过关成功! 项目设计 在这里插入代码片 ...
2019-10-23 23:47:18
234
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅