摘要:
一,构造函数与析构函数auto_ptr在构造时获取对某个对象的所有权(ownership),在析构时释放该对象。我们可以这样使用auto_ptr来提高代码安全性:int* p = new int(0);auto_ptr<int> ap(p);从此我们不必关心应该何时释放p, 也不用担心发生异常会有内存泄漏。这里我们有几点要注意:1) 因为auto_ptr析构的时候肯定会删除他所拥有的那个对象,所有我们就要注意了,一个萝卜一个坑,两个auto_ptr不能同时拥有同一个对象。像这样:int* p = new int(0);auto_ptr<int> ap1(p);auto_ 阅读全文
摘要:
<?php/*****************************************************************************===================== 请误用于非法用途,造成一切后果与本人无关。====================发布此版本是为了纪念安全天使曾经的辉煌。感谢你们与我一同走过:Sniper\Super·Hei\kEvin1986\saiy\wofeiwo。感谢所有的朋友们、兄弟们。多谢你们的关心和支持!选择在1月7日发布是为了纪念我老婆的生日,预祝我在本命年里。咸鱼翻身!================ 阅读全文
摘要:
一,入门const 指针 指针指向的内容不能变,指针可以改变指向指向const的指针 指针不可以改变指向,指针指向内容可以变#include "stdio.h" int main() { //const 指针 (指针指向的内容不能变,指针可以改变指向) int a = 5; int b = 6; const int *ptr = &a; *ptr = 8; //error ptr = &b; //ok; //指向const的指针 (指针不可以改变指向,指针指向内容可以变) int a = 5; int b = 6; int * const... 阅读全文
摘要:
一,函数指针 1)定义:指向函数的指针变量。“函数指针”本身是指针变量,该指针变量指向函数。 2)区别:这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。 3)说明:C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是一致的。 4)用途:函数指针有两个用途:调用函数和做函数的参数。 5)函数指针的声明方法为: 函数类型 (标志符 指针变量名) (形参列表) 注1:“函数类型”说明函数的返回类型, “(标志符 指针变量名 )”中的括号不能省,若... 阅读全文
摘要:
第二章:乱穿马路 2.1 目标:存储多值属性 2.2 反模式:格式化的逗号分隔列表 模糊匹配无法使用索引,影响性能;多表关联麻烦,却极大影响性能;执行聚合查询不方便开发和调试;更新某个字段值必须执行两次;字段内容出错数据很难恢复修正;选择一个用不用到的分隔符,无法确认不适用;列表长度限制; 2.3 解决方案:创建一张交叉表,实现两张表的多对多的关联第三章:单纯的树 目标:分层存储和查询 案例:文章和评论 每篇文章有多篇评论,每个评论可以引用另外的评论。 反模式: 最简单的解决方案就是在同一张表中存储该评论id的父节点id(parent_id) 邻接表的使用查询:select c1.... 阅读全文
摘要:
一,要求:自己动手编写 atoi(char *str)函数,功能是将字符串变成数字简单版本:需要考虑的地方 1)正负号2)仅仅考虑十进制 3)如何把数字 字符 变成整数#include <iostream>using namespace std;int StrToInt(char * str){ int value = 0; int sign = 1; if(*str == '-')//负号 { sign = -1; str++; } while(*str)// 此法很巧妙,直接从高位开始乘加即可,不用考虑字符串的长度 { va... 阅读全文
摘要:
从5.5开始,INNODB 引擎也可以像MYISAM引擎一样来进行压缩了。 当然压缩后的表没事你也别INSERT 或者 UPDATE了。 DELETE 就无所谓了,只是MARK下,完了再批量删除。 这点和BRIGHTHOUSE 引擎倒是一致。当然了, 并不是所有的表都适合压缩,然后进行读取。 应用场景,数据的分布,以及硬件的资源都制约了是否要进行压缩。这个时候来说,最好的办法就是进行压力测试,看看是否适合你自己的业务。下面呢,就是压缩表对应的一些新的特性。1. 压缩表只针对单表空间有效,所以设置如下参数: innodb_file_per_table innodb_file_format = B 阅读全文
摘要:
1、给定单链表,检测是否有环。使用两个指针p1,p2从链表头开始遍历,p1每次前进一步,p2每次前进两步。如果p2到达链表尾部,说明无环,否则p1、p2必然会在某个时刻相遇(p1==p2),从而检测到链表中有环。2、如果单链表有环,找到环节点。第一步,先按照上一题让p1和p2相遇,则相遇的点必然在环里。假设链表起点到环节点距离为l,环节点到p1,p2相遇点的距离为a,则p1前进距离为:l+ap2前进距离为:2(l+a)2(l+a)-(l+a)= nc // p2比p1多跑的距离为n圈c为环的周长则 l+a = nc第二步,p1再从链表开始跑,p2从相遇点开始跑,当跑了l距离以后。p1所在位置则 阅读全文
摘要:
一,概述 定义:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为之。 优点:客户提出请求时,请求时沿链传递直至有一个ConcreteHandler对象负责处理它二,职责链基本代码#include <iostream>
using namespace std; class Handler
{ protected: static Handler *successor; public: void SetSuccessor(Handler *successor... 阅读全文
摘要:
创建一个表Material用于测试CREATE TABLE material(pid INT PRIMARY KEY IDENTITY(1,1),name VARCHAR(100),color VARCHAR(50),num INT);插入些许测试值:INSERT INTO material(name,color,num)SELECT 'ball','red',12UNION ALLSELECT 'ball','red',24UNION ALLSELECT 'cat','yellow',13UNIO 阅读全文