![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++语言
yanghaitao_1990
我就是我
展开
-
C++为什么用模板类,为什么用泛型?
1、通过泛型可以定义类型安全的数据结构(类型安全),而无须使用实际的数据类型(可扩展)。 2、这能够显著提高性能并得到更高质量的代码(高性能),因为您可以重用数据处理算法,而无须复制类型特定的代码(可重用)。原创 2016-06-04 16:23:44 · 791 阅读 · 0 评论 -
ISO网络参考模型分层及每一层功能描述
物理层:通过媒介传输比特,确定机械及电气规范(位bit)中继器,集线器,双绞线 数据链路层:将比特组装成帧和点到点的传递(帧Frame)差错控制 网桥,以太网交换机,网卡(一半物理层,一半数据链路层) 网络层:负责数据包从源到宿的传递和网际互连(包PackeT)路由器,三层交换机 网络互连、路由选择、拥塞控制,通过寻址建立节点间连接 传输层:提供端到端的可靠报文传递和错误原创 2016-06-16 21:11:36 · 6125 阅读 · 0 评论 -
C++ explicit的作用
explicit作用:在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。explicit使用注意事项:* explicit 关键字只能用于类内部的构造函数声明上。* explicit 关键字作用于单个参数的构造函数。* 在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的转载 2016-06-16 09:54:36 · 413 阅读 · 0 评论 -
使用C/C++编写函数,实现字符串反转,要求不使用任何系统函数,且时间复杂度最小
//使用C/C++编写函数,实现字符串反转,要求不使用任何系统函数,且时间复杂度最小,函数原型:char* reverse_str(char* str)。/*实现字符串翻转*/char *reverse_str(char *str) { if(NULL == str) { //字符串为空直接返回 return str; } char *begin;转载 2016-06-14 10:43:49 · 3260 阅读 · 0 评论 -
Longest Palindromic Substring-----LeetCode
两种解法,动态规划和KMP变种动态规划,类似于lcs的解法,数组flag[i][j]记录s从i到j是不是回文首先初始化,i>=j时,flag[i][j]=true,这是因为s[i][i]是单字符的回文,当i>j时,为true,是因为有可能出现flag[2][1]这种情况,比如bcaa,当计算s从2到3的时候,s[2]==s[3],这时就要计算s[2+1] ?= s[3-1],总的来说,当i>j时置为转载 2016-06-13 16:04:07 · 226 阅读 · 0 评论 -
Longest Substring Without Repeating Characters-----LeetCode
Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for “abcabcbb” is “abc”, which the length is 3. For “转载 2016-06-13 15:09:51 · 235 阅读 · 0 评论 -
简述C++虚函数作用及底层实现原理
要点是要答出虚函数表和虚函数表指针的作用。C++中虚函数使用虚函数表和 虚函数表指针实现,虚函数表是一个类的虚函数的地址表,用于索引类本身以及父类的虚函数的地 址,假如子类的虚函数重写了父类的虚函数,则对应在虚函数表中会把对应的虚函数替换为子类的 虚函数的地址;虚函数表指针存在于每个对象中(通常出于效率考虑,会放在对象的开始地址处), 它指向对象所在类的虚函数表的地址;在多继承环境下,会存在多个虚函原创 2016-06-12 22:15:05 · 1631 阅读 · 0 评论 -
智能指针原理,并实现一个简单的智能指针
智能指针是一种资源管理类,通过对原始指针进行封装,在资源管理对象进行析构时对指针指向的内存进行释放;通常使用引用计数方式进行管理,一个基本实现如下:class Object;class SmartPointer;class Counter{ friend class SmartPointer;public: Counter() { ptr = NULL; cnt = 0; }原创 2016-06-12 22:09:46 · 408 阅读 · 0 评论 -
static和const关键字的作用
static关键字至少有下列n个作用: (1)函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值; (2)在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问; (3)在模块内的static函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内; (4)在类中的st原创 2016-06-12 16:52:32 · 265 阅读 · 0 评论 -
c++动态绑定
定义:动态绑定是将一个过程调用与相应代码链接起来的行为。是指与给定的过程调用相关联的代码,只有在运行期才可知的一种绑定,他是多态实现的具体形式。实现原理:C++中,通过基类的引用或指针调用虚函数时,发生动态绑定。引用(或指针)既可以指向基类对象也可以指向派生类对象,这一事实是动态绑定的关键。用引用(或指针)调用的虚函数在运行时确定,被调用的函数是引用(或指针)所指对象的实际类型所定义的。 C++中原创 2016-06-11 22:46:38 · 404 阅读 · 0 评论 -
C++精髓之多态性与虚函数
面向对象程序设计中的多态性是指向不同的对象发送同一个消息,不同对象对应同一消息产生不同行为。在程序中消息就是调用函数,不同的行为就是指不同的实现方法,即执行不同的函数体。也可以这样说就是实现了“一个接口,多种方法”。 从实现的角度来讲,多态可以分为两类:编译时的多态性和运行时的多态性。前者是通过静态联编来实现的,比如C++中通过函数的重载和运算符的重载。后者则是通过动态联编来实现的,在C++中运原创 2016-06-04 15:37:37 · 1057 阅读 · 0 评论 -
C++类型转换总结
C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a。 C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。const_cast,字面上理解就是去const属性。 static_cast,命名上理解是静态类型转换。如int转换成char。 dynamic_cast,命名上理解是动态类型转换。如子类和父类之间的多态类型转换转载 2016-06-17 19:46:21 · 240 阅读 · 0 评论