- 博客(69)
- 资源 (3)
- 收藏
- 关注
原创 哲学家就餐问题
public class Chopstick{private Lock lock;public Chopstick(){lock = new ReentrantLock();}public void pickUp(){void lock.lock();}public void putDown(){lock.unlock();}}pub
2015-09-09 22:13:23 425
原创 数据库中,连接有哪些不同类型?请说明这些类型之间的差异,以及为何在某些情形下,某种连接会比较好。
数据库中,连接有哪些不同类型?请说明这些类型之间的差异,以及为何在某些情形下,某种连接会比较好。
2015-09-08 15:36:29 776
原创 统计二进制中1的个数
题目:输入一个整数,求该整数的二进制表达式中有多少个1.例如,输入10,由于其二进制表示为1010,有两个1,因此输出 为2.int countOf1(int n){int c = 0;while (n != 0){n = n & (n - 1);c++;}return c;}another solution is to lookup
2015-09-08 13:01:47 499
原创 编写SQL查询,列出租住不止一套公寓的承租人
解答:要解决此题,我们可以使用HAVING和GROUP BY字句,然后将Tenants以INNER JOIN连接起来。SELECT TenantNameFROM TenantsINNER JOIN (SELECT TenantID FROM AptTenants GROU
2015-09-07 22:03:49 1408
原创 c++模板和java泛型之间有何不同
解法:/**MyClass.h**/template class MyClass{public:static int val;MyClass(int v){ val = v; }};/**MyClass.cpp**/templateint MyClass::bar;template class MyClass ;template class M
2015-09-07 16:10:45 3522
原创 用c编写一个my2DAlloc函数。
用C编写一个my2DAlloc函数,可分配二维数组。将malloc函数的调用次数降到最小,并确保可通过arr[i][j]访问该内存。 解法: 大家可能都知道,二维数组本质上就是数组的数组,既然可以用指针访问该数组,就可以用双重指针来创建二维数组。 基本思路是先创建一个一维指针数组,然后,为每个数组索引,再新建一个一维数组,这样就能得到一个二维数组,可通过数组索引访
2015-09-07 15:48:35 640
原创 编写支持对齐分配的malloc和free函数
题目:编写支持对齐分配的malloc和free函数,分配内存时,malloc函数返回的地址必须能被2的n次方整除。void *aligned_malloc(size_t required_bytes, size_t alignment){int offset = alignment - 1;void* p = (void*)malloc(required_bytes + o
2015-09-07 14:53:57 866
原创 编写一个智能指针类
SmartPointer(T* object)template class SmartPointer{public:SmartPointer(T* ptr){ref = ptr;ref_count = (unsigned*)malloc(sizeof(unsigend));*ref_count = 1;}SmartPointer(SmartPoi
2015-09-05 22:06:55 424
原创 编写方法,传入参数为指向Node结构的指针,返回传入数据结构的完整拷贝。
typedef map NodeMap;Node* copy_recursive(Node* cur,NodeMap& nodeMap){if (cur == NULL)return NULL;NodeMap::iterator i = nodeMap.find(cur);if (i != nodeMap.end()){//已访问过这里,返回拷贝return i
2015-09-05 21:43:21 457
原创 C语言的关键字“volatile"有何作用?
解法: 关键字volatile的作用是指示编译器,即使代码不对变量做任何改动,改变量的值任可能会被外界修改。操作系统,硬件,或其他线程都有可能修改该变量。该变量的值有可能遭受意料之外的修改,因此,每一次使用时,编译器都会重新从内存中获取这个值。volatile(易变)的整数可由下面的语句声明:int volatile x;volatlie int x;要声明指向vol
2015-09-05 19:38:17 977
原创 深拷贝和浅拷贝之间有何区别?请说明两者的用法
解法: 浅拷贝会将对象所有成员的值拷贝到另一个对象里。除了拷贝所有成员的值,深拷贝还会进一步拷贝所有对象指针。 下面是浅拷贝和深拷贝的例子。struct Test{char * ptr;}void shallow_copy(Test& src,Test& dest){dest.ptr = src.ptr;}void deep_copy
2015-09-05 19:17:27 567
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人