- 博客(50)
- 收藏
- 关注
原创 汇编语言知多少
https://www.jianshu.com/p/8faabed0eedbhttps://www.jianshu.com/p/d07ae7db8ec5https://www.jianshu.com/p/17b03747ea5ahttps://www.jianshu.com/p/0480e431f1d7
2019-10-01 21:57:16 213
原创 Linux用C/C++写MYSQL
在看了clnchanpin的博客后依葫芦画瓢写了用C++连MYSQL以下是模板:#include <iostream>#include <mysql/mysql.h>#include <string.h>using namespace std;int main(){ MYSQL mysql; mysql_i...
2018-12-06 19:46:09 255
原创 从文本读入数据(用read)
从文本读入数据可以用fstream in;in>>ch;这种方式读。但是用read将数据读入内存中效率更高,如下:#include <iostream>#include <fstream>#include <string.h>#define N 300using namespace std;int main(){ i...
2018-12-06 13:21:26 1181
原创 数据库的一些基本操作
这是在SQLBolt网站上学习的记录,网站链接在这里SQLBolt 查询操作 字符串匹配: 删除重复项: 查询结果排序: 显示特定行:(从num_offset下一行开始,显示num_limit行) 连接两个表:(用INNER JOIN ... ON ...) 各种连接INNER/LE...
2018-12-05 20:54:49 280
原创 linux下的静态库
linux下文件的后缀名只是为了方便程序员知道这是什么类型的文件,不用来识别文件类型。其中.so文件(shared object)是动态库(共享库),相当于windows下的.dll.a文件是(archive)归档包(静态库),由多个.o文件打包而来,相当于windows下的.lib.o文件是源码经过预处理、编译、汇编后的文件,只差链接。编译过程源代码 -> ...
2018-11-29 16:47:51 463
原创 Linux下的动态库
在windows下,软件的安装目录里面经常会看到很多.dll文件,这个.dll文件就是动态库。 Linux中也有动态库,一般名字格式为lib+[name]+.so (shared object)。 Linux下的.so相当于windows下的.dll 。下面是关于.os的介绍,(转载自YYDroid的博客)一、引言通常情况下,对函数...
2018-11-27 15:29:08 335
原创 getch函数
getch()是编程中所用的函数,这个函数是一个不回显函数,当用户按下某个字符时,函数自动读取,无需按回车,有的C语言命令行程序会用到此函数做游戏,但是这个函数并非标准函数,要注意移植性!...
2018-11-15 22:21:08 692
原创 基本server代码
#include <iostream>#include <string.h>#include <sys/socket.h>#include <arpa/inet.h>#include <stdlib.h>#include <stdio.h>#include <unistd.h>#define BU
2018-11-13 17:05:07 325
原创 Linux信号
信号的概念 信号是软件层上对中断的一种模拟,又称为软件中断(软中断)。 信号和中断的相同和区别 信号和中断都是异步通信方式。 信号没有优先级,中断有优先级;信号处理程序是在用户态(软件层),中断处理是在内核态;信号处理有延迟,中断处理及时。(由于信号处理是在软件层面上实现的,其实现手段导致信号有很长的延迟性,但对用户来说不易察觉) 内核对信号的处理...
2018-10-31 21:54:21 119
转载 Linux man手册的9种分类
1 - commands(普通的命令) 2 - system calls(系统调用) 3 - library calls(库函数) 4 - special files(特殊文件:/dev下设备文件) 5 - file formats and convertions(文件格式) 6 - games for linux(游戏和娱乐) 7 - ...
2018-10-31 19:30:13 1896
原创 fork与vfork、wait与waitpid区别
fork之后父进程子进程分离,各自有各自的内存空间,两个进程在OS管理下运行,无法确定谁先运行vfork后,父子程序共享内存空间,一般vfork搭配execve函数,创建子进程拉起别的进程(不用复制内存空间效率也更高)。子进程运行结束后运行父进程。execve替换代码段、数据段、堆栈段、进程控制块PCB。 pid_t wait(int *status);The wait() s...
2018-10-29 11:31:53 495
原创 守护进程
会话期、进程组、守护进程关系图守护进程的tty是? 创建守护进程的步骤(1)fork一个进程,并结束父进程(2)在子进程中调用setsid函数,创建新的会话期(此时子进程是新会话期的首进程,子进程也是该首进程组组长)(3)调用chdir函数,让根目录“/”成为子进程的工作目录(4)关闭标准输入标准输出标准错误(5)重定向stdin,stdout,stderr...
2018-10-26 17:31:28 141
原创 进程终止的方式
1.正常退出(1)从main函数return返回(2)调用exit函数(3)调用_exit或者_Exit函数(4)最后一个线程从其启动例程返回(5)从最后一个线程调用pthread_exit2.异常退出(1)调用abort函数(2)收到信号(3)最后一个线程对取消请求做出响应 exit()exit函数是c库函数,flush缓冲区,执行 atexit ...
2018-10-26 16:22:20 222
原创 C++以时间日期作为文件名
#include <time.h>#include <stdio.h>int main( void ){ time_t t = time(0); char tmp[64]; strftime( tmp, sizeof(tmp), "%Y-%m-%d %H:%M:%S",localtime(&t) ); puts( tmp );...
2018-07-01 23:27:59 8148
原创 使用父类调用子类成员/函数,虚函数继承时覆盖机制
#include <iostream>#include <bits/stdc++.h>using namespace std;class Animal{public: virtual void Print(){}; string type,color;};class Fish :public Animal{public: Fi...
2018-06-23 21:48:19 2447
原创 C++小数控制精度输出
cout << setiosflags(ios::fixed) << setprecision(2);
2018-06-23 21:16:14 828
原创 C和C++的文件操作
C FILE *fp; double sum = 0,x; int m; fp = fopen("in.txt","r"); fscanf(fp,"%d",&m); for(int i = 1; i <= m; i++) { fscanf(fp,"%lf",&x); sum += x;...
2018-06-23 20:42:30 206
原创 C++函数模板 和 迭代器
#include <iostream>#include <vector>using namespace std;//template <class T>template <typename T>//typename是为了避免class混淆T sum(T a, T b)//函数模板{ return a+b;}int m...
2018-06-23 17:53:48 767
原创 C++运算符重载
#include <iostream>using namespace std;class a{ public: //返回值是一个引用 a & operator-()//一元运算符 { x = -x; return *this;//注意返回的是对象不是指针 } a & operato...
2018-06-23 17:20:24 174
原创 虚析构函数
当用父类指针指向子类,释放父类指针时,只会释放父类中的成员,而子类中的不会释放,造成内存泄漏。用虚析构函数释放子类中的成员。将父类中的析构函数定义为虚析构函数,释放父类指针时,会先调用子类的析构函数再调用父类的析构函数。...
2018-06-23 02:31:51 191
转载 C++虚继承
#include<iostream>using namespace std;class A //大小为4{public: int a;};class B :virtual public A //大小为12,变量a,b共8字节,虚基类表指针4{public: int b;};class C :virtual public A //与B一样12{publi...
2018-06-23 01:39:45 273
原创 C++保护继承,私有继承
保护继承#include <iostream>using namespace std;//公有继承,父类的public继承在public下,父类的protected集成在protected下,private继承在看不到的地方,无法直接访问//保护继承,将父类的public和protected都继承在自己的protected下,private继承在看不到的地方,无法直接访问//...
2018-06-21 13:45:17 228
原创 C++公有继承
#include <iostream>using namespace std;class person{public: person() { cout<<"person()"<<endl; } ~person() { cout<<"~person()"<&
2018-06-21 12:50:21 189
原创 C++中的#和##
#include <iostream>#define t(x) hello##x//合并操作符##将出现在其左右的字符序列合并成一个新的标识符 #define s(y) #y//将传入的参数变为字符串,字符串化using namespace std;int main(){ int hello1 = 10; cout<<t(1)<<e...
2018-06-19 18:06:03 6566
原创 c++输入文件,追加文件
ofstream write( "record.txt", ios::app);//打开record.txt文件,以ios::app追加的方式输入 write<<id<<' '<<score*10<<' '<<sumTime<<" seconds"<<endl
2018-06-19 10:21:53 10802 1
原创 this指针
为什么需要this?因为this作用域是在类的内部,自己声明一个类的时候,还不知道实例化对象的名字,所以用this来使用对象变量的自身。在非静态成员函数中,编译器在编译的时候加上this作为隐含形参,通过this来访问各个成员(即使你没有写上this指针)。例如a.fun(1)<==等价于==>fun(&a,1) this指针博客this指针帮助类函数寻找到对象数据(数据成员)...
2018-06-17 02:37:54 121
原创 c++快速入门 对象指针,对象成员指针
#include <iostream>using namespace std;//对象成员指针就是一个类里面的类是一个指针//对象指针:类指针,创建的是一个类类型的指针class coordinate{public: coordinate(int xx,int yy); ~coordinate(); int x; int y;};co...
2018-06-17 02:04:19 304
原创 C++快速入门(构造函数,析构函数,初始化列表,拷贝构造函数)
//构造函数在定义对象时自动调用,析构函数在对象销毁时自动调用#include<bits/stdc++.h>using namespace std;class teacher{public: ///初始化列表,初始化列表优先于构造函数,只能用于构造函数,用于const定义的数据初始化,只能在构造函数后 teacher():name("ZS"),age(1...
2018-06-14 16:38:19 394
原创 C++快速入门(命名空间/引用/函数重载/内联函数)
#include<bits/stdc++.h>using namespace std;namespace mynum//命名空间{ int x = 105;}using namespace mynum;//可以使用两个namespace,前提是两个命名空间没有相同变量void Swap(int &x, int &y)//函数的引用,传递过来的是实参本...
2018-06-13 11:30:45 187
原创 第九届省赛-表达式求值(模拟)
写了四个函数,分别来实现各个功能int kuohao(string str);//去括号的函数int cheng(int a,string b);//乘法的函数int jia(int a,string b);//加法的函数int Smax(string str);//Smax的函数#include<bits/stdc++.h> using namespace std; int ...
2018-05-22 14:27:18 191
转载 C++中getline()、gets()等函数的用法
原博客在学习C++的过程中,经常会遇到输入输出的问题,以下总结一下下面几个函数的用法: 1)、cin 2)、cin.get() 3)、cin.getline() 4)、getline() 5)、gets()1、cin>> 用法1:最基本,也是最常用的用法,输入一个数字: #include using namespace std;
2017-11-29 19:42:09 2659 1
原创 挑战程序设计 DP POJ 3181
题目链接题目大意:完全背包思路 : dp[i+1][j] = dp[i][j] + dp[i][j-i]注意:会爆long long,要用两个long long 数组,一个存储高位,另一个存储低位#include #include #include using namespace std;const long long M = 10000
2017-11-17 13:49:53 244
原创 挑战程序设计2.3 多重集组合数 POJ3046
POJ3046题目链接题目大意:n种物品,第i种有ai个,同种类无法区分,不同种类可以区分,从中取m个物品,有多少种取法(对M取模)dp[i+1][j] : 从前i种物品中选出j个物品的取法总数易得从前i-1个物品选j-k个物品,再从第i个物品中拿出k个物品组合成jdp[i+1][j] = ∑dp[i][j-k] ( 0这个朴素的算法的时间复杂度是O(nmm)
2017-11-16 21:56:54 367 2
原创 【PTA】05-树9 Huffman Codes(30 分) 优先队列
题目链接思路:1.记录频率①用数组记录要编码的字符(char ch[N];)②建立map容器Time,用Time[字符]记录字符的使用次数2.建立Huffman树,计算出最少花费①用优先队列建Huffman树②计算最少花费(用队列层序遍历Huffman树)3.比较测试数据①花费是否最少 ----如果不是---->输出no (编码长度*字符使用次数)
2017-11-10 19:50:13 661
转载 POJ-3190-Stall Reservations
这个题是说一些奶牛要在指定的时间内挤牛奶,而一个机器只能同时对一个奶牛工作。给你每头奶牛的指定时间的区间,问你最小需要多少机器。思路:最开始想的是以奶牛要求时间的结束点从小到大进行排序,但后来发现这样的想法是错误的。后来经过调整,应该先按奶牛要求的时间起始点进行从小到大排序,然后维护一个优先队列,里面以已经开始挤奶的奶牛的结束时间早为优先。然后每次只需要检查当前是否有奶牛的挤奶工作
2017-10-29 17:05:37 181
转载 关于Floyd算法三层循环顺序问题
Floyd算法是一个经典的动态规划算法。用通俗的语言来描述的话,首先我们的目标是寻找从点i到点j的最短路径。从动态规划的角度看问题,我们需要为这个目标重新做一个诠释(这个诠释正是动态规划最富创造力的精华所在) for(int k = 1; k <= n; k++) for(int i = 1; i <= n; i++) for(in
2017-10-22 10:14:06 3823 2
原创 python学习 原始字符串操作符 print
>>> x = 'a\nb'>>> x'a\nb'>>> print(x)ab>>> x = r'a\nb'>>> x'a\\nb'>>> print(x)a\nb>>> a/nb原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 r解释一:r就是让引号里的内容原样输出,或者说把原本会产生特殊意义的符号是去意义
2017-09-08 17:42:53 1957
原创 【数论】 欧几里德 扩展欧几里德 乘法逆元 挑战程序P115
欧几里德(辗转相除法)求最大公约数int gcd(int a, int b){ if(b == 0) return a; return gcd(b, a%b);}优化版本int gcd(int a,int b){ return b ? gcd(b,a%b) : a;}扩展欧几里德求方程ax + by
2017-08-29 09:36:08 337 2
原创 lower_bound函数详解 挑战程序设计P66
(挑战程序设计P66)lower_bound这个STL函数,从已安排好的序列a中利用二分搜索找出指向满足ai >= k的ai的最小指针。类似的函数还有upper_bound,这一函数求出的是指向满足ai > k的ai的最小指针。如下图所示:图片来源用这两个函数可以很快的求出长度为n的有序数组a中k的个数:num = upper_bound(a, a+n, k) - lowe
2017-08-24 15:33:00 393
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人