- 博客(8)
- 资源 (3)
- 收藏
- 关注
原创 学习设计模式(7)——6大原则
1.开闭原则对修改关闭,对扩展开放。即尽量不允许修改,但鼓励扩展。理解 : 一个虚基类,然后有多个子类,允许继续扩展新的子类,但是已有的子类不建议修改。2.里氏替换原则父类必须可以被子类替换,否则就不应该设计为其子类。理解 : 在子类继承父类之后,子类应当只实现虚函数的部分,不应当实现不是虚函数的函数。不要重写父类的方法,也不要重载父类的方法。
2017-02-23 23:23:28 265
转载 C++如何判断一个string字符串,是否是数字
#include #include #include using namespace std; bool isnum(string s) { stringstream sin(s); double t; char p; if(!(sin >> t))
2017-02-20 10:06:23 22470
原创 关于STL中的Vector,list和deque
1 vector与list区别vector为存储的对象分配一块连续的地址空间,因此对vector中的元素随机访问效率很高。在vecotor中插入或者删除某个元素,需要将现有元素进行复制,移动。如果vector中存储的对象很大,或者构造函数复杂,则在对现有元素进行拷贝时开销较大,因为拷贝对象要调用拷贝构造函数。对于简单的小对象,vect
2017-02-19 22:06:21 443
原创 查找连续相同值的算法,并给出连续相同值的个数以及位置
下面的代码,是查找连续相同值的算法#include#include#includeusing namespace std;int main(){ std::string str = "987600000000000000000789111111111111111666666666666"; int num = 1; char word; int
2017-02-16 13:30:00 7347 1
原创 rep movsd ,N - move all of our dwords--【解决办法】
今天晚上,调程序的时候,出现这个问题,同时还弹出一个框显示:未处理的异常 0xC0000005: 读取位置 0x00000000 时发生访问冲突【解决办法】:找到memcpy()的那一行,这里肯定是存在越界的问题,请按如下方式修改,记得最后的 +1memcpy( dest, src, strlen(src) + 1 );千万记得 +1 .--
2017-02-14 22:29:39 3172
原创 学习设计模式(6)——建造者模式
1.介绍这个模式,非常有用。有时候,你的一个类,有许多函数功能,你又不希望在这个类里面再增加一个管理函数调用的接口,但你又不希望用全局变量来操作这批函数,怎么办?你还可以用建造者模式。2.具体使用说明最经典的例子,莫过于《effective C++》条款23,宁以non-member,non-friend替换member函数。我就是从这里学的建造者模式。虽然在Mey
2017-02-14 13:36:04 245
原创 学习设计模式(5)——装饰器模式
装饰器模式,挺难学的,感觉技巧上复杂一点,有那么一丝递归的意思在里面。第一次看代码,看的云里雾里,在我单步调试之后,终于明白了装饰器模式的关键写法——调用父类(含参)构造函数,再直接调用父类的函数去执行。这样就可以依次把要装饰的东西,全都装上去。表面上和建造者模式非常相似,仔细想想,建造者模式更简单明了。但是,我想装饰器模式有他存在的必要,因为建造者模式是组装成一个东西,而装饰
2017-02-13 23:27:43 256
原创 学习设计模式(4)——桥接模式
今天学习了桥接模式,感觉很受启发。1.桥接模式UML图2. 理解桥接模式(1) 将抽象和实现分离开来。(2) 不同的实现可以自由发展。(3) 不同的抽象,也可以有许多不同的继承,这些继承可以多种多种。3. 代码说明 :(1) shape是最高抽象,然后你可以自己继承多种形状,圆形,方形,星型,三角形等等。(2) 实现部分,就可以多
2017-02-11 15:37:01 315
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人