- 博客(12)
- 收藏
- 关注
原创 STL之算法总结
一.数值算法(若使用数值算法必须包含头文件) 1>accumulate( first, end , init):求解的是init和 [first, end)数值的总和.init一定要初始化,这样可以保证first和end为NULL时得到一个确切的值。 2>adjacent_difference(first ,last , result):用来计算[first , last
2017-04-07 09:00:36 263
原创 数据库回顾
一:数据库设计之模式设计 数据库模式设计是数据库逻辑设计的基础; 模式分解包括: 1>无损连接:保证依赖关系R可以被分解承德Ri恢复; 2>保持函数依赖:关系模式的FD集在分解后仍然在数据库模式中保持不变; 3>无损连接加保持函数依赖:上述两者的综合; ER模型:包括实体,属性,实体与实体间的联系; 数据库设计的原则:实体尽可能少
2017-03-20 19:08:32 303
原创 深入探索c++对象模型之站在对象模型的尖端
1.Template对于member function 的“实体”化,只有在member function被使用的时候,c++standard 才要求它们被“具现”出来。 1>template的错误报告所有与类型有关的检验,如果牵涉到template参数,都必须延迟到真正的具现操作发生,才得为之。nonmember和member template function在具现行为发生之
2017-03-19 18:22:17 244
原创 深入c++对象模型之执行期语意学
1.对象的构造与解构 一般而言,constructor 和 destructor的安插都会如你所预期: //c++伪码 { Point point; //point.Point::Point();一般而言会被安插在这里 ... //point.Point::~Point();一般而言会被安插在这里 }
2017-03-19 10:11:44 323
原创 c++注意事项
1.malloc不能调用构造函数 new可以,new和delete是运算符,而malloc和free是标准库函数,delete可以调用析构函数,而free不可。2.指针数组和数组指针int * a[4]:是指a数组里面的元素都是指针int (*a)[4]:是指,a是个指针,指向长度为4的数组。3.不能重载的运算符:?: * .* :: . 。4.
2017-03-17 07:35:45 1466
原创 深入C++对象之构造函数语意学
一:Default Constructor 的构建操作 1.“带有Default Constructor”的Member Class Object 如果一个类中包含一个class object 且这个class有default constructor 则编译器会生成一个default constructor 里面会对member data调用default constr
2017-03-15 16:04:00 203
原创 vector,list,deque等内存分配及各方面的注意事项
1.vector 其实连续存储空间,其容量总是大于等于其内元素的个数,当进行插入操作时,如果分配的内存空间不够,则会分配新的空间(大小为原来的空间加上原来空间的一半),其iterator是random Access iterator 。2。list 其内存空间是链式存储是一个环状的双向链表,插入和删除都是常数时间,每次分配一个节点的内存空间。iterator不是普通
2017-03-15 14:38:24 3606
原创 STL中的hashtable
一:hashtable概述 1.它的节点是hash table node(并不是listNode)。 2.表格用的是vector,其大小是28个指数中最接近所要求的数。 3.用开链法。 4.其迭代器没有减操作,也没有逆向迭代器。 5.重建表格:当元素个数>hashtable表格的大小时要求重建表格,重建表格是要将每一个元素重新进行hash,然后再delete掉oldhashta
2017-03-11 10:33:29 649
原创 深入c++对象之data语意学
一:class x{};class y:public virtual x{};class z:public virtual x{};class A:public y,public z{};1. sizeof(x)=1,虽然x为空类,但是编译器会为其分配一个字节,用来区分x所创建对象。 例如: x t1; x t2; 如果没有这个字节,就无法区分t1和t2了,加上这
2017-03-10 19:20:31 568
原创 C++内联函数
内联函数一般可以:1.加快程序的执行速度;2.可能减小可执行文件的大小;3.可能增加可执行文件的大小;4.可能降低执行速度。1和3很好理解,在编译时期内联函数能将代码直接写入其被调用的地方,这样就减少了入栈出栈的时间消耗,但是如果调用内联函数的地方过多,代码量也会随之增加,增加了可执行文件的大小。2为什么正确呢?是因为如果调用普通函数的话编译器可能会产生更多的代码来实现
2017-03-09 15:29:08 1108
原创 c++的动态内存分配
C++的内存区域包括四部分:data area:全局变量,静态变量,常量;code area:所有类成员函数和非成员函数代码;stack area:为运行函数而分配的局部变量,函数的参数,返回值,返回地址等;heap area:动态内存分配区;在c++运行时,栈的空间是非常小的,所以就需要程序员来使用堆来创建对象(new),但是在堆上创建对象要求程序员知道什么时
2017-02-18 14:06:40 213
原创 信息安全工程
密码学基础: 1.经典密码大致可以分为两大类:代替密码和置换密码。 代替密码:明文中的每个字符被替换成密文中的另一个字符。接受者对密文做反向替换就可以还原明文
2017-02-17 09:08:22 276
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人