STL 库由哪部分组成:容器、算法、迭代器。
简答题:1.冒泡排序和快速排序的优缺点
2.进程和线程共同使用的技术(好像是这么说的)
3.指针和引用的区别
4.析构函数和普通成员函数的区别
1. 答案:
冒泡排序:优点稳定;缺点:慢。
快速排序:优点快速;缺点:不稳定。
2.
3. 答案
引用访问一个变量是直接访问,而指针是间接访问。
引用是一个变量的别名,本身不单独分配自己的内存空间,而指针有自己的内存空间。
引用在开始的时候就绑定到了一个内存空间(开始必须赋初值),所以他只能是这个内存
空间的名字,而不能改成其他的,当然可以改变这个内存空间的值。
编程题(c,c++,java 都可以,但不能用库函数)
1.识别一个字节中按位置 1 的个数,尽量用高效率的方法实现
2.编程实现一个类中只能实例化 3 次
3.实现一个字节中空格个数不能超过一个,例如 a--b-c 应该输出 a-b-c,此处-代表空格
1. 答案:
int n = 0;
for( int i=0; i<8; i++)
{
If(a&1) n++;
a>>1;
}
2. 答案:
only3Instance.cpp : 定义控制台应用程序的入口点。通过此实例实现一个
类,这个类不能被继承,并且最多可以实例化 3 次。在设计模式中,有一种模
式叫“单例模式”,这个模式向我们展现了一个类,这个类只产生一个实例。
这个类里面,屏蔽掉了拷贝构造函数,构造函数,析构函数,这样这个类就不
会被继承,因为我们知道,当一个类被继承时,子类必须先调用父类的构造函
数,在析构时,父类最后被析构,将创建对象的部分定义为一个静态对象,所
以只会产生一个实例。
下面我们仿照这一思路,改变对象“静”的特性,就可以随心所欲的创建对
象,同时我们在堆上定义一个变量(static),用来检验对象创建的个数。
class CFinal
{
public:
static int count;
public:
static CFinal* FetInstance()
{
if(count <= 0)