摘要: Count the number of prime numbers less than a non-negative number,n.计算小于n的质数的个数,当然就要用到大名鼎鼎的筛法了,代码如下,写的有点乱不好意思。 1 class Solution { 2 public: 3 int ... 阅读全文
posted @ 2015-10-06 22:17 eversliver 阅读(456) 评论(0) 推荐(0) 编辑
摘要: 注意一下,c++的底层编译器而言,引用类型往往都是由指针来实现出来的,所以pass-by-reference实际意义上往往是传递了一个指针,这对于c++的内置类型来说往往传递一个reference更加昂贵一点。但是这不能成为对所有的小对象不使用pass-by-reference的理由。小结:1. 尽... 阅读全文
posted @ 2015-10-06 20:58 eversliver 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 下面的条框应该是谨记的:1. 新的type应该如何创建与销毁2. 对象的初始化与赋值应该有什么样的区别3. 新type的对象如果被pass-by-value,有什么影响?4. 什么事新type的合法值5. 新的type需要什么样的转换6. 什么样的操作符和函数对于这个type而言是合理的7. 什么样... 阅读全文
posted @ 2015-10-06 20:24 eversliver 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 先考虑下面这个接口:1 class Data{2 ...3 public:4 Data(int month, int day, int year);5 };虽然声明是比较合理的,但是有时候人们不一定会这样做,例如做下面这样调用对于客户来说也是完全可能的:Data(2, 30, 1995);可... 阅读全文
posted @ 2015-10-06 19:58 eversliver 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 先可考虑下下面这个语句:1 int prioriy();2 processWidget(shared_ptr(new Widget), priority());上面这条语句看似比较正常,不会泄露资源,但是实际上并非如此。调用上面这个语句的时候基本上分成三步:1. new Widget2. 根据Wid... 阅读全文
posted @ 2015-10-06 19:18 eversliver 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 首先思考下面的代码:1 string * stringArray = new string[100];2 ...3 delete stringArray; 这是最常见的错误之一了,new与delete不配对,但是仔细想想new与delete为什么一定要配对呢? 可以想到一种可能就在分配数组的时候... 阅读全文
posted @ 2015-10-06 19:04 eversliver 阅读(202) 评论(0) 推荐(0) 编辑
摘要: Given a positive integern, find the least number of perfect square numbers (for example,1, 4, 9, 16, ...) which sum ton.For example, givenn=12, return... 阅读全文
posted @ 2015-10-06 17:22 eversliver 阅读(512) 评论(0) 推荐(0) 编辑
摘要: Given an arraySofnintegers, find three integers inSsuch that the sum is closest to a given number, target. Return the sum of the three integers. You m... 阅读全文
posted @ 2015-10-06 15:01 eversliver 阅读(687) 评论(0) 推荐(0) 编辑
摘要: 即使我们对一些资源使用了RAII类进行管理,但是还是不能避免很多的API需要你去提供原始的资源来对他们进行调用:例如对于条款13中的例子来说:1 shardPtr pInv(createInvestment);2 //看看下面这个函数3 int daysHold(const Investment *... 阅读全文
posted @ 2015-10-06 09:49 eversliver 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 首先假设对于一个mutex互斥器对象,有lock以及unlock两个函数可用:1 void lock(Mutex * pm);2 void unlock(Mutex * pm);那么为了防止资源忘记被释放,首先得想法就是创建一个RAII类来进行资源的管理,像下面这样:1 class Lock{2 ... 阅读全文
posted @ 2015-10-06 09:48 eversliver 阅读(233) 评论(0) 推荐(0) 编辑