C/C++
文章平均质量分 65
I_love_blog
这个作者很懒,什么都没留下…
展开
-
数组指针与指针数组
这两个名字不同当然所代表的意思也就不同。我刚开始看到这就吓到了,主要是中文太博大精深了,整这样的简称太专业了,把人都绕晕了。从英文解释或中文全称看就比较容易理解。指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针数组指针:a pointer to an array,即指向数组的指针还要注意的是他们用法的区别,下面举例说明。in翻译 2016-12-24 13:46:25 · 192 阅读 · 0 评论 -
多态与继承的区别
1、 什么是继承,继承的特点?子类继承父类的特征和行为,使得子类具有父类的各种属性和方法。或子类从父类继承方法,使得子类具有父类相同的行为。特点:在继承关系中,父类更通用、子类更具体。父类具有更一般的特征和行为,而子类除了具有父类的特征和行为,还具有一些自己特殊的特征和行为。在继承关系中。父类和子类需要满足is-a的关系。子类是父类。表示父类和子类的术语:父类和子类、超类和子类、基类和派转载 2017-04-19 10:39:53 · 724 阅读 · 0 评论 -
虚继承与虚函数继承
虚继承主要用于菱形 形式的继承形式虚继承是为了在多继承的时候避免引发歧义, 比如类A有个就是a,B继承了A,C也继承了A,当D多继承B,C时,就会有歧义产生了,所以要使用虚拟继承避免重复拷贝。 虚函数继承是解决多态性的,当用基类指针指向派生类对象的时候,基类指针调用虚函数的时候会自动调用派生类的虚函数,这就是多态性,也叫动态编联虚函数继承:原创 2017-06-23 14:51:16 · 428 阅读 · 0 评论 -
在C++中,有哪4个与类型转换相关的关键字?这些关键字有什么特点?应该在什么场合使用?
1、reinterpret_cast type-id > ( expression )reinterpret_cast是C++里面的一个强制类型转换符,能够将任何的指针类型转换成其他的任何指针类型;能够将任何的整数类型转换成指针类型,反之亦然;滥用reinterpret_cast强制类型转换符不安全。除非要转换成的类型是固有的低级别的,不然要考虑使用其他的转换操作符。a、rei原创 2017-08-26 09:27:51 · 1515 阅读 · 0 评论 -
指针和引用区别
指针和引用的定义和性质区别:(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:int a=1;int *p=&a;int a=1;int &b=a;上面定义了一个整形变量和一个指针变量p,该指针变量指向a的存储单元,即p的值是a存储单元的地址。而下面2句定义了一个整原创 2017-11-13 14:26:15 · 199 阅读 · 0 评论 -
内存池的理解
掌握内存管理对于c++/c程序员的重要性。使用内存池的优点有:降低动态申请内存的次数,提升系统性能,减少内存碎片,增加内存空间使用率。内存池的分类:一、不定长内存池:优点:不需要为不同的数据创建不同的内存池,缺点是分配出去的内存池不能回收到池中(?)。代表有apr_pool,obstack。二、定长内存池:优点:使用完立即把内存归原创 2017-11-14 22:24:53 · 1708 阅读 · 0 评论 -
面向对象思想的理解
前言:面向对象编程,即OOP,是一种编程范式,满足面向对象编程的语言,一般会提供类、封装、继承等语法和概念来辅助我们进行面向对象编程。类型被设计为将数据和行为捆绑在一起的一种东西,数据和行为被称之为类型的成员。我们可以创建类型的实例,不同的实例包含不同的数据,从而其表现出来的行为也会不同,尽管其代码是一样的。封装使得类的成员得以有选择性的暴露,一些成员只在类型的内部使用,被称之原创 2017-11-21 21:48:49 · 265 阅读 · 0 评论 -
boost.asio系列——io_service
IO模型io_service对象是asio框架中的调度器,所有异步io事件都是通过它来分发处理的(io对象的构造函数中都需要传入一个io_service对象)。 asio::io_service io_service; asio::ip::tcp::socket socket(io_service);在asio框架中,同步的io主要流程如下:转载 2017-11-22 20:03:21 · 424 阅读 · 0 评论 -
C++11新特性学习笔记
出处:http://blog.csdn.net/hzyong_c/article/details/8273884 最近学习了C++11的新特性,将学习内容整理下来以巩固记忆,C++11的新特性,可以分为两部分,第一部分是C++11核心语言的特性,第二部分是STL标准库的新特性。学习C++11主要参考了wiki上的一篇文章,在介绍右值引用的时候还转载 2018-02-08 22:51:41 · 290 阅读 · 0 评论 -
二叉树递归调用过程
二叉树是最常见最重要的数据结构之一,它的定义如下: 二叉树(binary tree)是有限多个节点的集合,这个结合或者是空集,或者由一个根节点和两颗互不相交的、分别称为左子树和右子树的二叉树组成。 二叉树最基本的操作是遍历:一般约定遍历时左节点优先于右节点,这样根据根节点的遍历顺序可分为三种遍历操作:前序-先遍历根节点,再处理左右节点;中序-先遍历左节点,然后处理根节点,最后处原创 2017-03-27 14:48:10 · 9111 阅读 · 8 评论 -
seekg()/seekp()与tellg()/tellp()的用法详解
对输入流操作:seekg()与tellg()对输出流操作:seekp()与tellp()下面以输入流函数为例介绍用法:seekg()是对输入文件定位,它有两个参数:第一个参数是偏移量,第二个参数是基地址。对于第一个参数,可以是正负数值,正的表示向后偏移,负的表示向前偏移。而第二个参数可以是:iOS::beg:表示输入流的开始位置ios::cur:表示输入流的当前位置io原创 2017-04-10 19:39:16 · 666 阅读 · 0 评论 -
灵活的指向const 的引用
如果函数具有普通的非const 引用形参,则是不可能通过const 对象进行调用的。如果可以的话,此时函数就可以修改传递进来的对象,这将会违背实参的const 特性,因为引用,形参是对象的一个别名,修改形参也就修改了实参。而实参是一个const 对象,只可进行读,不可进行写。 例如: 编写下面程序在一个string对象中查找一个指定的字符: 这个函数将其string原创 2016-12-26 20:47:44 · 216 阅读 · 0 评论 -
递归求最大公约数的递归函数
求两个数的最大公约数:这个例子,终止条件是余数为0.原创 2016-12-27 14:32:43 · 1383 阅读 · 0 评论 -
C++关联容器之小小程序
#include #include #include #include #include #include using namespace std;int main(){ //第一步:创造一个存储书本的容器 vectorstrVecBook; string bName; cout << "Input book's name you wanna read(ctrl + z t原创 2017-01-07 09:43:11 · 568 阅读 · 0 评论 -
谈谈对容器适配器的理解
对于容器适配器,它和顺序容器到底有什么区别?看了一晚上的书,似懂非懂,后来理清了一下思路:适配器:adapter,其原意是插座,适配器,接合器的意思。假如说现在在编写程序中需要一个栈结构,可以用deque来模拟,然而deque毕竟不能直接作为一个stack,它并不能直接严格满足要求,因为我们不能防止别人在另一端乱动我的东西,(因为deque是一种顺序容器,其为双端队列)然而我们所需要的原创 2016-12-31 21:46:48 · 998 阅读 · 0 评论 -
细究C++中const_iterator与const迭代器的区别
const_iterator 与const迭代器如果细究起来,差别还相当大,但要理解这两个东西的区别,还不太容易,下面谈谈对这两个东西的理解,有不对之处或说得不好的地方,希望大家踊跃提出,多给意见vectorvec(5, 10);const vector::iterator iter = vec.begin();如果出现下面的情况,则是不对的++iter;因为iter已经被定义为一个常原创 2017-03-01 22:08:02 · 400 阅读 · 0 评论 -
深入理解C++中public、protected及private用法
初次接触C++的各位经常在类中看到public,protected,private以及它们在继承中表示的一些访问范围,很容易搞糊涂。今天就来十分分析一下C++中public、protected及private用法。相信对于大家深入掌握C++程序设计会有很大的帮助。这里我们首先要明白下面几点。1.类的一个特征就是封装,public和private作用就是实现这一目的。所以:用户代码(类外原创 2017-03-04 18:37:29 · 347 阅读 · 0 评论 -
二叉查找树又来了,该死而复杂的删除操作
二叉查找树的删除操作很复杂,而且要考虑的情况较多,在算法导论这本书上分为三种情况来讨论:首先根据给定的val值找到相对应的节点:1.如果该节点既没有左子树,也没有右子树,直接进行删除操作就好,(三种情况中最为简单的一种)2.如果该节点只有左子树或者右子树,则可以通过其子节点和父节点间建立一条链来删除该节点3.如果该节点既有左子树又有右子树,首先要删除当前节点的后继节点m(大于当前节原创 2017-03-06 15:43:42 · 407 阅读 · 0 评论 -
C++中static、const使用方法简介
出处:http://www.cnblogs.com/xiaoyi115/p/3622891.html众所周知,在c++中,static和const的使用方法是难点,也是重点,值得我们随时温习,所谓温故而知新是也。 下面我们首先说一说static。 1、static的作用 static变量的作用,主要可以归纳为以下几点 a、可以隐藏,如果在函数体外声明成员变量,非sta...转载 2018-02-08 10:38:28 · 280 阅读 · 0 评论