2011年11月3日
摘要: 1. 只能在堆(heap)上创建对象/禁止产生栈(stack)对象 创建栈对象时会移动栈顶指针以“挪出”适当大小的空间, 再在这个空间上直接调用对应的构造函数以形成一个栈对象, 而当函数返回时会调用其析构函数释放这个对象, 再调整栈顶指针收回那块栈内存, 在这个过程中是不需要operator new/delete操作的, 所以将operator new/delete设置为private不能达到禁止产生栈(stack)对象的目的. 把析构函数定义为private访问权限, 就可以保证只能在堆(heap)上创建(new)一个新的类对象.析构函数私有化的类的设计可以保证只能用new命令在堆(he.. 阅读全文
posted @ 2011-11-03 22:42 白草黒尖 阅读(3221) 评论(2) 推荐(3) 编辑
摘要: 找出一个有序字符串数组arr中值等于字符串v的元素的序号,如果有多个元素满足这个条件,返回其中序号最大的? 类似:在有序整数数组中查找指定数值,若有多个元素满足这个条件,返回其中序号最小的?#include <iostream>using namespace std;int binary_search(int *arr, int len, int key){ if (arr == NULL || len <= 0) return -1; int minIndex = 0, maxIndex = len-1, midIndex; // 循环结束有2种情况:若mi... 阅读全文
posted @ 2011-11-03 19:47 白草黒尖 阅读(311) 评论(0) 推荐(0) 编辑