随笔分类 - C++ 学习
字符串匹配的KMP算法(转)
摘要:转载:http://kb.cnblogs.com/page/176818/字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这个任务,Knuth-Morris-Pr...
阅读全文
C 语言字符串(译)
摘要:C 语言的 switch 语句非常强大。然而,它不能用字符串作为判断条件,只能用常整数。这是可以理解的,因为 C 的字符串仅仅是数组,它们并不是并不是一个整体。 在某些情况下,将 string 作为 switch 语句判断条件是非常有用的。在 lwan 中我用一个小窍门避免在热门路径调用 st...
阅读全文
模板类的全特化、偏特化
摘要:我们先来定义一个普通的模板类1 template2 struct Test3 {4 Test(){ cout t1;4 Test t2;5 Test t3;6 return 0;7 }输出的结果1: 模板类 模板类 模板类如果我们这样写,再增加一个模板类 1 ...
阅读全文
自己动手实现智能指针auto_ptr
摘要:面试的时候,我们经常会被问到如何自己动手实现智能指针auto_ptr.今天我就一边参考STL库中的源代码,一边将auto_ptr的实现敲一遍。auto_ptr归根到底是一个模版类,那么这个类要实现哪些功能呢?如下:/* 一个智能指针应该有以下操作: 1.Auto_ptr ap; //...
阅读全文
C++中的 new / delete
摘要:new的3种形态: new operator , operator new , placement new 1.new operator: new操作符,像 + - * / && . :: ?: 等操作符一样,是语言内置的, 它 不能被重载,不能改变其行为。 它的行为包括分配内存的 operat...
阅读全文
面试试题
摘要:第一题:通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则: 1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。 2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。 下面是我写的代码: 1 #include 2 3 using namespace std; 4 5 void string
阅读全文
C++学习之容器的摸索
摘要:初学容器,容易犯错的地方1.vector,list和deque都是顺序容器。其中vector和deque都可以通过下标访问,而list不能2. 容器的begin和end操作 c.begin()返回一个迭代器,它指向容器c的第一个元素 c.end()返回一个迭代器,它指向容器c的最后一个元素的 c.rbegin()返回一个逆序迭代器,它指向容器c的最后一个元素 c.rend()返回一个逆序迭代器,它指向容器c的第一个元素的前面一个元素 注意以上操作的返回的迭代器类型,前两个是iterator,后面一个是reverse_iterator。乱了顺序是不行的请看下面一段代码: 1 #inc...
阅读全文
c++子类继承父类的覆盖问题
摘要:废话少说,先看一段代码!1 #include 2 #include 3 using namespace std;4 5 class A6 {7 public:8 int val;9 };10 class B:public A11 {12 public:13 int val;14 };15 int main()16 {17 cout << sizeof(A) << endl;18 cout << sizeof(B) << endl;19 return 0;20 }大家知道输出的结果是什么吗?结果是4和8(我的机子上int 是4个字节)!这说明了什么
阅读全文
C++中自己理解的一些细节哈
摘要:对于大牛来说,我写的可能很低级哈,留给自己看,以后遇到的都慢慢补充哈!^^1.每一个类定义结束后,不要忘了在类的结束符"}"后面加上一个";"哦!2.构造函数和析构函数肯定是不能只申明而不定义的,因为这个两个函数无论如何都会被调用。其他成员函数倒是可以只申明而不定义---只要你不调用它!3.一个类会...
阅读全文
学习C++所需看的书和顺序
摘要:初学:《C++ 编程思想》《C++ Primer》《The C++ Programming Language》提高:《C++ 的发展与演化》《深度探索C++ 事物模型》进阶:《Effectie C++》/ 《More Effective C++》《C++ 沉思录》泛型编程:《STL源码剖析》《C++ 涉及心思为---泛型编程与设计模式之应用》《C++ 标准库》《Effective STL 中文版》---虽然目前这些书不用全看,但在我以后的日子里一定会将上述所列C++图书看完!
阅读全文
C++中强制变换之const_cast
摘要:今天学习了一下C++中的强制转换,看了const_cast,我发现了这个转换关键字的奇怪之处,于是把它记录一下,废话不说,先看一个程序: 1 #include 2 3 using namespace std; 4 5 int main() 6 { 7 const int val = 5; 8 int test =5; 9 //int *pval = &val; //err: cannot convert from 'const int * to int *'10 int *pval = const_cast(&val);11 cout << ...
阅读全文
生成任意区间的随机数
摘要:当我们要生成一个简单的随机数时,具体代码如下: 1 //生成0-10之间的随机数,可生成任意数之间的随机数 2 #inlcude 3 #include 4 #include 5 6 using namespace std; 7 8 int main() 9 {10 int tim; 11 srand(time(0));12 tim = rand()%10 + 1; //rand from 1-10,if you want to rand from N to M(M>N) ,do as :t...
阅读全文
浙公网安备 33010602011771号