Hawstein's Blog

Make something people love

Cracking the coding interview--Q13.5

题目 原文: What is the significance of the keyword “volatile” in C? 译文: 谈谈C语言关键字”volatile”的意义(或重要性)? 解答 volatile的意思是”易变的”,因为访问寄存器比访问内存要快得多, 所以编译器一般都会做减少存取内存的优化。volatile 这个关键字会提醒编译器,它声明的变量随时可能发生变化...

Cracking the coding interview--Q13.4

题目 原文: What is the difference between deep copy and shallow copy? Explain how you would use each. 译文: 深拷贝和浅拷贝的区别是什么?你会如何使用它们? 解答 浅拷贝并不复制数据,只复制指向数据的指针,因此是多个指针指向同一份数据。 深拷贝会复制原始数据,每个指针指向一份独立的数据...

Cracking the coding interview--Q13.3

题目 原文: How do virtual functions work in C++? 译文: C++中的虚函数是如何工作的? 解答 虚函数依赖虚函数表进行工作。如果一个类中,有函数被关键词virtual进行修饰, 那么一个虚函数表就会被构建起来保存这个类中虚函数的地址。同时, 编译器会为这个类添加一个隐藏指针指向虚函数表。如果在派生类中没有重写虚函数, 那么,派生类中虚表存储...

Cracking the coding interview--Q13.2

题目 原文: Compare and contrast a hash table vs. an STL map. How is a hash table implemented?If the number of inputs is small, what data structure options can be used instead of a hash table? 译文: ...

Cracking the coding interview--Q13.1

题目 原文: Write a method to print the last K lines of an input file using C++. 译文: 用C++写一个函数,打印输入文件的最后k行。 解答 一种方法是打开文件两次,第一次计算文件的行数N,第二次打开文件,跳过N-K行, 然后开始输出。如果文件很大,这种方法的时间开销会非常大。 我们希望可以只打开文件一次,就...

Cracking the coding interview--Q16.5

题目 原文: Write a program to find whether a machine is big endian or little endian. 译文: 写一个程序判断一台机器是大端序还是小端序。 解答 关于什么是大端序和小端序,可参见维基百科: 字节序 判断程序如下: 1 2 3 4 5 6 7 #define BIG_ENDIAN 0 #define L...

Cracking the coding interview--Q16.10

题目 原文: Write a function called my2DAlloc which allocates a two dimensional array. Minimize the number of calls to malloc and make sure that the memory is accessible by the notation arr[i][j]. ...

Cracking the coding interview--Q16.1

题目 原文: Explain the following terms: virtual memory, page fault, thrashing. 译文: 解释下列术语:虚拟内存,缺页中断,抖动。 解答 虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存 (一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片, 还有部分暂时存储在外...

Cracking the coding interview--Q17.5

题目 原文: What are the differences between TCP and UDP? Explain how TCP handles reliable delivery (explain ACK mechanism), flow control (explain TCP sebnder’s / receiver’s window) and congestion c...

Cracking the coding interview--Q17.4

题目 原文: What is a network / subnet mask? Explain how host A sends a message / packet to host B when: (a) both are on same network and (b) both are on different networks.Explain which layer makes...