摘要: 1. string string.substr(int,int) //返回一个从指定位置开始的制定长度的子字符串 size_t string.find(string) //找到的第一个符合字符的index size_tstring.rfind(string) //找到最后一个符合的字符的index const char* strstr(const char*,const char*)//返回值是主串中子字符串及以后位置的所有字符 阅读全文
posted @ 2013-04-04 20:08 _HK_ 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 1. 栈区(stack):由编译器自动分配和释放,存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中的栈。2. 堆区(heap): 一般由程序员分配和释放,若程序员不释放,程序结束时可能由操作系统收回。注意它与数据结构中的堆是两回事,分配方式类似于链表。3. 全局区(静态区)(static): 全局变量和静态变量的存储是放在一起的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域,程序结束后由系统释放。4. 文字常量区: 常量字符串就是放在这里的,程序结束后由系统释放。5. 程序代码区: 存放函数体的二进制代码。例子:1 int main 阅读全文
posted @ 2013-04-04 13:51 _HK_ 阅读(268) 评论(1) 推荐(0) 编辑
摘要: 直接/折半插入排序 时间复杂度O(n^2) 希尔排序 时间复杂度O(n^3/2)冒泡排序 时间复杂度O(n^2)1 for(int j=1;j<n;++j) //比较n-1次2 for(int i=0;i<n-j;++i) //第j趟比较n-j次快速排序 时间复杂度O(nlogn) 最坏情况下时间复杂度是O(n^2)选择排序 时间复杂度O(n^2) (树形选择排序、堆选择排序时间复杂度O(nlogn)) 归并排序 时间复杂度O(nlogn)注: 稳定的排序:插入排序、冒泡排序、归并排序、二叉... 阅读全文
posted @ 2013-04-03 17:21 _HK_ 阅读(133) 评论(0) 推荐(0) 编辑
摘要: const int a; int const a; 这两个写法是等同的,表示a是一个int常量。const int *a; 表示a是一个指针,可以任意指向int常量或者int变量,它总是把它所指向的目标当作一个int常量。也可以写成int const* a;含义相同。int * const a; 表示a是一个指针常量,初始化的时候必须固定指向一个int变量,之后就不能再指向别的地方了。int const * a const; 这个写法没有,倒是可以写成int const * const a;表示a是一个指针常量,初始化的时候必须固定指向一个int常量或者int变量,之后就不能... 阅读全文
posted @ 2013-04-03 10:51 _HK_ 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 假设有类:classBase {public:virtualvoidf() { cout <<"Base::f"<< endl; }virtualvoidg() { cout <<"Base::g"<< endl; }virtualvoidh() { cout <<"Base::h"<< endl; }};则:Base b;cout <<"虚函数表地址:"<< (int*)(&b) << endl;c 阅读全文
posted @ 2013-04-02 19:26 _HK_ 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 1. 公有继承基类成员对派生类的可见性对派生类而言,基类的公有成员和保护成员可见,他们作为派生类的成员时,保持原有的状态。基类的私有成员不可见,派生类不可访问基类中的私有成员。基类成员对派生类对象的可见性对派生类对象而言,基类的公有成员是可见的,其他成员不可见。所以,在公有继承时,派生类的对象可以访问基类中的公有成员,派生类的成员函数可以访问基类中的公有成员和保护成员。2. 私有继承。基类成员对派生类的可见性对派生类而言,基类的公有成员和保护成员是可见的,基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类访问,基类的私有成员是不可见的,派生类不可以访问基类的私有成员。基 阅读全文
posted @ 2013-04-02 14:04 _HK_ 阅读(590) 评论(0) 推荐(0) 编辑
摘要: 1. vector 的reserve增加了vector的capacity,但是它的size没有改变!而resize改变了vector的capacity同时也增加了它的size。 reserve是容器预留空间,但在空间内不真正创建元素对象,所以在没有添加新的对象之前,不能引用容器内的元素。加入新的元素时,要调用push_back()/insert()函数。 resize是改变容器的大小,且在创建对象,因此,调用这个函数之后,就可以引用容器内的对象了,因此当加入新的元素时,用operator[]操作符,或者用迭代器来引用元素对象。此时再调用push_back()函数,是加在这个新的空间后面的。i. 阅读全文
posted @ 2013-04-01 11:16 _HK_ 阅读(539) 评论(2) 推荐(1) 编辑
摘要: 1.sizeof strlen 1> 大部分编译程序在编译时会把sizeof计算过了,是类型或者变量的长度,这就是sizeof(x)可以用来定义数组维数的原因,strlen的结果要在运行的时候后才计算出来。 2> 数组做sizeof的参数不退化,传递给strlen就退化为指针了; 3>sizeof()括号中的内容在编译过程中是不被编译的,只是被替换类型,如 int a = 8;sizeof(a)在编译过程中,被替换成sizeof(int),如果sizeof(a=6),此后a的值还是8,是不变的。 4> char* b = "we are best!" 阅读全文
posted @ 2013-03-30 17:24 _HK_ 阅读(400) 评论(0) 推荐(1) 编辑
摘要: 1. windows运行多长时间、安装时间查询命令 systeminfo(Dos控制台下)2. windows本地用户和组 计算机->管理->本地用户和组 其中,组ora_dba是在装oracle的时候创建的,右键,属性可以查看其成员。 阅读全文
posted @ 2013-03-27 17:24 _HK_ 阅读(202) 评论(0) 推荐(0) 编辑