
C++
文章平均质量分 51
seemuch
这个作者很懒,什么都没留下…
展开
-
C++ class template中,重载输出运算符(<<)的方法
最近在写C++。在为一个template class重载<<运算符的时候,碰到了许多问题。这些问题我想对于没有这方面经验的人都比较难以解决,或者解决了也不明白是怎么回事。 我在stackoverflow上找到一个回答,基本上讲得比较详细,大家可以去看~ http://stackoverflow.com/questions/4660123/overloading-friend-o原创 2013-01-02 20:25:12 · 1395 阅读 · 0 评论 -
Longest Palindromic Substring (最大回文子字符串)
Longest Palindromic Substring (LPS) 问题是一个DP中的经典问题。处理这个问题的第一个关键点在于要区分substring和subsequence(我就犯了这样的错误)。substring指的是连续的子字符串,比如abc是abcde的substring, 但abe就不是它的substring,但可以算一个subsequence. 下面介绍这道题的若干种解法。 1原创 2013-02-08 14:06:57 · 514 阅读 · 0 评论 -
C++中的copy-and-swap idiom
有一定C++基础的人一定了解The Big Three这个说法。它说的就是当我们定义一个class的时候,如果这个class里面有指针类型的member,则我们需要定义copy constructor, assignment operator和destructor(而不能用编译器自己产生的)。这个原则被成为The Big Three或者Rule of Three。Destructor和copy c原创 2013-01-03 18:40:05 · 798 阅读 · 0 评论 -
[LeetCode] Next Permutation
问题: Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers. If such arrangement is not possible, it must rearrange it as the lowest原创 2013-12-30 00:21:53 · 1041 阅读 · 0 评论 -
[C++] C++中的eplicit关键字
在C++中,构造函数可以用来做隐性的type conversion。比如: #include using namespace std; class A { public: A(); A(int) {cout << "First constructor called" << endl;} A(const char*, int = 0) {cout << "Second construct原创 2014-01-26 00:24:49 · 1391 阅读 · 0 评论 -
[总结] Bitwise operations
这里总结一下常见的bitwise operations。(C++) 1)shift。 >是向右shift。这个很简单。需要注意的是补位的问题。如果是向左shift,那么没有问题,补的都是0,换句话说,低位补的都是0;如果是向右shift,那么取决于这个数是signed还是unsigned。如果是signed,那还要取决于最高位是1还是0。如果一个signed的数,最高位是1,那么在向右移动的过原创 2014-01-25 11:39:05 · 1994 阅读 · 0 评论 -
[C++11] Move Semantics
1. lvalue和rvalue 一切都要从两个古老的概念开始讲起:lvalue和rvalue。先看一段代码: int a = 3; 6 = a; 这段代码一看就是有问题的,而且显然问题出在了第二行。那么问题到底是什么呢?答案就是:6是一个rvalue,我们不能把rvalue放在赋值操作的左边。这样看来,lvalue和rvalue的意思就呼之欲出了:lvalue是可以放在赋值操作左边的;而r原创 2014-01-31 07:52:02 · 1233 阅读 · 0 评论