- 博客(65)
- 收藏
- 关注
原创 php题目
创建多级目录函数mkdir();获取网页内容函数 fiel_get_content();输出file_put_content();parse_url() 解析一个url 以数组的形式输出 host path query(参数)pathinfo 解析path(路径) 以数组的形式输出 文件 文件名 后缀相对路径计算function getRelativ...
2019-03-19 21:09:39
189
原创 mysql
CREATE TABLE `news`( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `content` text NOT NULL, `uid` int(11) NOT NULL DEFAULT '0', `username` varchar(255) NOT NULL, ...
2019-03-14 12:33:22
140
原创 nginx
开始命令:start nginx或者 nginx.exe结束命令:taskkill /f /t /im nginx.exe检查80端口是否被占用的命令是: netstat -ano | findstr 0.0.0.0:80 或netstat -ano | findstr "80"...
2019-03-13 19:01:15
217
原创 redis
事务使用multi exec组合命令redis 127.0.0.1:7000> multiOKredis 127.0.0.1:7000> set a aaaQUEUEDredis 127.0.0.1:7000> set b bbbQUEUEDredis 127.0.0.1:7000> set c cccQUEUEDredis 127.0.0.1:7...
2019-03-13 16:54:17
165
原创 require namespace use用法
php的命名空间是为了管理类,防止类名冲突。后面添加的路径为了方便查找。第一个命名空间前不能有任何代码。1.phpclass Person{ function __construct(){ echo 'I am one!'."<br>"; }}2.php<?phprequire_once '1.php';new Per...
2019-03-04 11:13:30
1345
原创 PHP
php是弱类型语言,所以 1==‘1’ 而 1==='1' 则不成立empty判断变量的值是1还是0 isset判断变量是否赋值,赋值了为1(0也是赋了值),没赋值(或者赋值为null,或者只声明了)为0,is_null判断变量值是否为null,null为1,不是null为0 (变量赋值为null或只声明的情况下,变量值才为null,其它情况都不是null,0也不是null)...
2019-02-15 16:14:52
317
原创 void*
const char s1[] = "hhh";const char s2[] = "hhh";const char* s3 = "hhh";const char* s4 = "hhh";cout << (void*)s1 << " " << (void*)s2 << endl;cou
2018-12-07 10:25:05
152
原创 认识cpu、核、进程与线程
cpu:自己的电脑一般一个cpu,服务器会有多个cpu。核:有多个核(4、8、16)。对比 进程 线程 定义 进程是程序运行的一个实体的运行过程,是系统进行资源分配和调配的一个独立单位 线程是进程运行和执行的最小调度单位 系统开销 创建撤销切换开销大,资源要重新分配和收回 仅保存少量寄存器的内容,开销小,在进程的地址空间执行代码 拥有资源 ...
2018-11-13 16:49:31
845
原创 网络编程
参考一:https://blog.youkuaiyun.com/daoming1112/article/details/54698466/ 粘包问题参考二:https://blog.youkuaiyun.com/chenchukun/article/details/78991215 tcp/udp创建步骤
2018-11-06 22:19:46
106
转载 Makefile
转自:https://www.cnblogs.com/wang_yb/p/3990952.htmlMakefile 使用总结1. Makefile 简介Makefile 是和 make 命令一起配合使用的.很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之间的依赖关系不知会多复杂.Makefile的组织流程的能力如...
2018-11-06 21:59:16
170
转载 linux常用命令
Linux常用命令大全(非常全!!!)最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解到的命令列举一下,仅供大家参考: 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用...
2018-11-06 21:53:15
162
原创 linux编程
多进程Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。子进程永远返回0,而父进程返回子进程的ID。这样做的理由是,一个父进程可以fork出很多子进程,所以,父进程要记下每个子进程的ID,而子进程...
2018-10-29 18:06:20
147
原创 智能指针的使用条件和缺陷
一、auto_ptr不支持复制(拷贝构造函数)和赋值(operator =),编译不会提示出错。不要使用两个auto_ptr指针指向同一个指针;不要使用auto_ptr指向一个指针数组,因为auto_ptr的析构函数所用的是delete而不是delete[],不匹配;不要将auto_ptr储存在容器中,因为赋值和拷贝构造后原指针无法使用。 还有最重要的一点就是,什么情况下也别使用...
2018-10-26 16:42:43
1415
原创 字符分割
std::vector<std::string> split(const std::string &str, const std::string &pattern){ std::vector<std::string> resVec; //方便截取最后一段数据 std::string strs = str + pattern; ...
2018-10-24 22:08:57
261
原创 反转合并链表
反转链表node* reverseList(node* H){ if (H == NULL || H->next == NULL) //链表为空或者仅1个数直接返回 return H; node* p = H, *newH = NULL; while (p != NULL) //一直迭代到链尾 { ...
2018-10-17 10:25:04
249
原创 extern c的作用
extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言语法进行编译,而不是C++的。extern 是变量或函数的申明,告诉编译器在其它文件中找这个变量或函数的定义。这里需要的是“声明”,不是“定义”!根据C++标准的规定,一个变量声明必须同时满足两个条件,否则就是定义: (1)声明必须使用extern关键...
2018-10-17 09:38:52
9909
1
原创 数据结构算法
冒泡排序:比较相邻两个数的大小,每次找出最大的,然后循环次数减1void bubble_sort(int arr[], int len){ int i, j,temp; for (i = 0; i < len - 1; i++) for (j = 0; j < len - 1 - i; j++) if (arr[j] >...
2018-10-08 18:43:54
142
转载 数据库查询
数据库引擎:myisam快速读取,但不支持数据恢复、外键。innodb支持数据恢复和外键,但读取慢多表联合查询多表联合查询可以通过连接运算实现,而连接运算又可以通过广义笛卡尔积后在进行选择运算来实现。Select 多表联合查询语句Select 列名 [[,列名]...] from 表名1,表名2,,... Where 查询条件; 可以使用as为表或者字段(属性)取别名;...
2018-09-20 23:09:24
175
转载 c++ string类的实现
原文:http://noalgo.info/382.htmlString是C++中的重要类型,程序员在C++面试中经常会遇到关于String的细节问题,甚至要求当场实现这个类。只是由于时间关系,可能只要求实现构造函数、析构函数、拷贝构造函数等关键部分。String的实现涉及很多C++的基础知识、内存控制及异常处理等问题,仔细研究起来非常复杂,本文主要做一个简单的总结和归纳。 一 整体...
2018-09-20 22:47:36
169
转载 C/C++学习路线
C/C++学习路线随着互联网及互联网+深入蓬勃的发展,经过40余年的时间洗礼,C/C++俨然已成为一门贵族语言,出色的性能使之成为高级语言中的性能王者。而在今天,它又扮演着什么样重要的角色呢?请往下看:后端服务器,移动互联网后端,经典Windows界面开发,移动互联网端界面开发,跨平台界面开发,图形分析,系统架构,应用设计,还有现在最为流行的分布架构等一些新的技术领域。 这么牛的语言,...
2018-09-18 13:36:06
187
原创 数据结构二叉树的遍历和高度
先序遍历:根左右中序遍历:左根右后序遍历:左右根二叉树的节点定义typedef struct Node{ DataType data; struct Node* leftChild; struct Node* rightChild;}BiTreeNode;先序遍历void PreOrder(BiTreeNode* t){ if(...
2018-07-24 18:18:33
262
转载 union、结构体(class)占用字节数及存储与空间分配
union变量所占用的内存长度等于最长的成员的内存长度。struct和class内存中存储形式一样(函数不占内存空间)。struc还有一种:位域操作法我们都知道在数据类型中,char类型占1个字节,short占2个字节,int占4个字节,long占8个字节等等。在计算结构体大小时需要考虑其内存布局,结构体在内存中存放是按单元存放的,每个单元多大取决于结构体中最大基本类型的大小,下面...
2018-07-24 17:22:09
5437
原创 浅拷贝和深拷贝
类有一个特殊的成员函数:复制构造函数默认形式Class_name(const Class_name &);浅拷贝class CExample {private: int a;public: CExample(int b) { a=b;} CExample(const CExample& C) { a=C.a; } vo...
2018-07-03 18:44:01
111
原创 new完之后不delete,变量会一直保存
#include "stdafx.h"#include <iostream>using namespace std;class aa{public: int a; virtual void set(int i) { a = i; }};aa* cc[4];void chuangjian(){ aa* b = new aa; b->set(73); cc[1] = b;}int ...
2018-06-22 17:54:09
3055
原创 静态变量
静态变量 类型说明符是static。静态变量的特征:一、不会随着函数的调用和退出而发生变化。即上次调用函数的时候,如果我们给静态变量赋予某个值的话,下次函数调用时,这个值是最新的数据。二、静态变量初始化语句只有在第一次调用才执行。三、静态局部变量的初始化表达式必须是一个常量或者常量表达式。即使局部静态变量定义时没有赋初值,系统会自动赋初值0(对数值型变量)或空字符(对字符变量);stat...
2018-05-09 17:35:34
490
原创 c++的5种存储区域
一、栈区(先进后出)栈区存放的都是局部变量,其范围过了之后系统会自动回收。二、堆区这里的内存是由程序员自己管理的,例如:申请内存、释放内存malloc free new delete alloc destroy若程序员不释放,程序结束时可能由OS回收。三、静态区(全局区)静态区存储的是全局变量和静态变量(只初始化一次),在程序全部结束之后释放。四、常量区程序在运行期间,值不能改变的区...
2018-05-09 17:07:08
1002
原创 单例模式的实现
class CSingleton{private: CSingleton() // 构造函数私有 防止使用构造函数赋予新的地址 { } static CSingleton *p;public: static CSingleton* getInstance() // 提供一个获取地址的接口 { ...
2018-05-09 16:26:21
118
原创 error LNK1169: 找到一个或多个多重定义的符号
问题出现的原因,是因为一个变量在一个头文件声明,但是却在2个及以上的.cpp文件中定义。解决方案,一般编译器会告诉你是哪个变量出现问题,你需要定位到那个变量,然后,删除其中一个多余的变量定义还有一种无奈的解决方法,你打开项目-》配置属性-》连接器-》命令行,输入以下字符串,以允许多重定:/force:multiple
2018-03-27 14:01:41
2575
2
转载 typedef函数指针的应用
typedef int (*MyFUN)(int a,int b);int Max(int a, int b){ return a > b ? a : b;}int main(int argc, char** argv){ MyFUN pMyFun; pMyFun = Max; cout << pMyFun(1, 2) <<...
2018-01-08 18:07:26
159
原创 c++类的前置声明
class a;class B{public: B(){} a *c;};int i = 9;class a{public: void print() { cout << "hello" << endl; }};int main(int argc, char** argv){ B b; b.c->pri
2018-01-04 18:05:34
220
原创 英语十六种时态
现在一般时过去一般时 将来一般时过去将来一般时现在进行时 过去进行时将来进行时 过去将来进行时现在完成时 过去完成时将来完成时 过去将来完成时现在完成进行时 过去完成进行时 将来完成进行时过去将来完成进行时
2018-01-03 15:34:19
1171
原创 STL模板的容器理解
序列式容器:只存储value关联式容器:存储key和value,且容器排好序。通常由二叉树来实现。一、vectorvector动态数组,所以不仅使用迭代器可以输出vector,使用vector[1]方式同样可以输出值。数据连续。删除操作:例如 1 2 2 3 4 判断删除一个2后 还剩下 1 2 3 4 因为后边的2 3 4 依次向前进 指针指到3的位置。...
2017-12-18 17:43:25
205
原创 tinyxml
tinyxml 新的使用f->Attribute("Type", &i); //将type的属性值赋给变量inamevalue属性 name Value()元素value getText
2017-11-30 16:29:50
155
转载 linux、windows下的 svn使用
在项目中,基本不可避免多个人同时参与一个项目,因此就可能会出现多个人同时修改一个文件的情况,就不可避免的会出现冲突。svn已经很聪明了,如 果你和别人对于同一个文件的修改之间不存在重叠(比如你在文件最开始增加了一行,而你同事在文件的结尾出增加了一行),svn会自动将你们的修改进行合 并,然而意外总是会发生,而且超出了svn的处理范围,只好采用人工智能(手工)来进行合并了。要解决冲突,我们首先得
2017-11-24 15:42:17
385
原创 gdb 调试 && vs调试
一、先要生成二进制文件g++ -g 1.cpp -o 1.out (-g参数不要省,不然 gdb l 参数用不了)二、参数设置断点 :设置 函数断点 break func(),在某行设置断点 break 7查看断点信息:info break删除断点:d (删除所有断点) d 3 (删除第三个)运行:r 下一步:n 逐过程步进,不会进入子函数(类似VS里的F10)下一步:s step逐语...
2017-11-13 18:21:24
226
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人