自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (3)
  • 收藏
  • 关注

原创 C++中虚函数的作用和实现原理

虚函数的作用和实现原理虚函数实现原理:虚函数表、虚函数指针虚函数的作用:当调用一个虚函数时,被执行的代码必须和调用函数的对象的动态类型相一致。当一个类声明了虚函数或者继承了虚函数,这个类就会有自己的虚函数表。虚函数表实际上就是一个函数指针数组,有的编译器用的是链表。虚函数表数组中的每一个元素对应一个函数指针指向该类的一个虚函数,同时该类的每一个对象都会包含一个虚函数表指针,虚函数表指...

2018-05-31 21:28:32 2727 1

原创 析构函数是否能抛出异常?

析构函数是否能抛出异常?C++标准指明析构函数不能、也不应该抛出异常。 C++异常处理模型最大的特点和优势就是对C++中的面向对象提供了最强大的无缝支持。那么如果对象在运行期间出现了异常,C++异常处理模型有责任清除那些由于出现异常所导致的已经失效了的对象(也即对象超出了它原来的作用域),并释放对象原来所分配的资源, 这就是调用这些对象的析构函数来完成释放资源的任务,所以从这个意义上说,析构...

2018-05-30 21:47:42 685

原创 typedef和#define的不同之处

++i 和 i++ 的区别刚学C语言时,老师和我们讲解过 俩者的区别,俩者的区别就是: ++i 是先加1再操作i++ 是先操作在加1在看完一些书籍以后,对其有了进一步的了解: 前置版本是将对象本身作为左值返回,后置版本是将对象原始值的副本作为右值返回区别前置版本的递增运算符避免了不必要的工作,他把值加1后直接返回改变了运算对象;与之相比,后置版本需要将原始值存储下来...

2018-05-25 22:25:21 211

原创 在Window下使用Xshell访问Ubuntu 详细教程(带插图)

VMware 网络模式桥接模式 windows 和 ubuntu 共享网卡,两者互相独立,ubuntu 与外网互通互联也是开发板与ubuntu的连接模式NAT ubuntu 共享windows的网络,ubuntu 可以访问外网,外网不能访问ubuntu通常用来上网,安装软件更新仅主机 用于 windows 与 ubuntu 连接,ubuntu 不 可以访问外网, 外网也不能访问...

2018-05-23 16:12:00 1639

转载 C++后台开发面试常见问题汇总

博客转载于:http://blog.csdn.net/shanghairuoxiao/article/details/72876248c和c语言基础参考书籍:《C++ primer》,《effective C++》,《STL源码解析》,《深度搜索C++对象模型》extern关键字作用extern声明变量在在外部定义?extern修饰函数?extern C的作用?用法?s...

2018-05-21 21:41:17 330

原创 编写 Makefile 示例

要使 Linux 下的hello.c程序能够运行,我们可以直接 gcc hello.c, 但当源文件过多时,就需要编写一个Makefile文件,Makefile文件定义了一系列的规则,它指明了哪些文件需要编译,哪些文件需要先编译,哪些文件需要重新编译等等更为复杂的命令。使用它带来的好处就是自动编译,你只需要敲一个“make”命令整个工程就可以实现自动编译。当然我们本次实验只有一个文件,它还不能...

2018-05-19 23:04:46 1020

原创 二维数组元素变换为逆向存放

题目.编程将一个二维数组元素变换为逆向存放,即按元素在内存中的物理排列位置,第一个元素变成倒数第一个元素,第二个元素变成倒数第二个元素,依此类推。 例如,原始二维数组为,逆向存放后变为。试建立一个类REVARR,完成上述工作。具体要求如下: (1)私有数据成员 int a[M][N]:初始化时存放原始二维数组,最终存放逆向存放后的二维数组。 (2)公有成员函数 REVARR(in...

2018-05-18 22:05:30 1518

转载 网络相关知识

前言无论是 C/S 开发还是 B/S 开发,无论是前端开发还是后台开发,网络总是无法避免的,数据如何传输,如何保证正确性和可靠性,如何提高传输效率,如何解决会话管理问题,如何在网络拥堵环境下采取措施。这些都是需要了解的。今天总结下与网络相关的知识,不是那么详细,但是包含了我认为重要的所有点。如果想深入了解的可以参考《图解HTTP[上野 宣]》、《图解TCP/IP(第5版)[竹下隆史]》以及...

2018-05-17 22:59:22 171

原创 C++ 读取 .txt 文件信息

今天,一位朋友问我如何将文件中的数据读取到数组中,想来自己好久没有编写过有关文件操作的代码,就编写了一小段代码。 代码:#include <iostream> #include <fstream> int main(){ fstream file("test.txt"); //创建一个fstream,打开名为"test...

2018-05-17 22:31:42 597

原创 类的 static 成员

类的静态成员静态成员可以是public 或 private静态成员函数也不与任何对象绑定在一起,它们不包含this指针。作为结果,静态成员函数不能声明为const的,而且我们也不能在static函数体内使用this指针。也意味着它们不是类的构造函数初始化的。我们使用作用域运算符直接访问静态成员: class A{static void func();} auto r = A::fun...

2018-05-16 21:53:44 401

原创 Linux 常见命令详解

Linux 常见概念Linux 严格区分大小写Linux 中所有内容以文件形式保存,包括硬件。一切内容皆文件。Linux 不靠扩展名区分文件类型,靠权限区分文件类型。带后缀的文件名是约定俗成,方便管理Windows下的程序不能在Linux中安装和运行Linux 采用字符界面有什么优势字符界面占用的系统资源更少字符界面减少了出错、被攻击的可能性常见目录的作用...

2018-05-14 22:51:15 176

原创 函数的参数传递位数组时,如何传递

数组作为形参传递初学者刚学完数组后,需要将数组作为参数传递时,会直接将数组作为参数传递,实际上数组作为形参传递时,是以指针传递的。void print(int* a);void print(int a[]);//尽管形式不同,但是上面两个函数是等价的,每个函数的唯一形参都是 int* 类型使用数组作为形参的函数也必须确保使用数组不会越界。管理指针形参的三种方法: ...

2018-05-13 22:31:17 643

原创 一个结构体占用内存大小的问题

sizeo(结构体)的大小问题先来看下面的示例代码:struct Demo{ int a; int b;};int main(){ cout<<"Demo size = " << sizeof(Demo)<<endl; return 0;}毫无疑问,都会说,结果为 8 这时我提出一个问题?请问在32位和...

2018-05-12 22:49:22 2530

原创 在Window下使用Xshell访问Ubuntu

VMware 网络模式桥接模式 windows 和 ubuntu 共享网卡,两者互相独立,ubuntu 与外网互通互联也是开发板与ubuntu的连接模式NAT ubuntu 共享windows的网络,ubuntu 可以访问外网,外网不能访问ubuntu通常用来上网,安装软件更新仅主机 用于 windows 与 ubuntu 连接,ubuntu 不 可以访问外网, 外网也不能访问...

2018-05-12 22:01:03 831 1

原创 函数的实参与形参问题

函数的实参与形参问题相信对于新手来说,刚开始学习编程时,对于实参形参会有些搞不清楚,经常在写函数时搞混。形参的值传递和引用传递首先我们来看一个例子://这个函数的形参没有取引用,所以只是将实参的值赋予给形参,改变形参的值,并不会改变实参的值void func(vector<int> v){ for (auto it = v.begin(); it != v....

2018-05-11 22:49:54 557

原创 推荐一个免费下载简历模板的网站

最近在做简历,发现很多简历模板下载都需要付费,发现一个免费下载模板的网站,推荐给大家: http://www.jxhou.com/index.html

2018-05-10 22:23:31 26234 2

原创 比较 int *p[10] 和 int (*p)[10]的区别:

比较 int *p[10] 和 int (*p)[10]的区别:int *p[10]:整型指针的数组 代表一个数组里面存放着四个整型指针int (*p)[10]:指向含有4个整数的数组 这是一个存放四个整型数的数组 可以这样操作: (*p)[0] = 99; //表示将数组首元素赋值为99...

2018-05-10 13:40:16 1176

原创 使用迭代器运算的经典算法----二分搜索

使用迭代器运算的经典算法 二分搜索二分搜索是从有序序列中寻找某个给定的值算法分析:从序列中间的位置开始搜寻,如果中间的正好是目标元素,则搜索完成; 若 < 目标元素,则在后半部分搜索,若 > 目标元素,则在前半部分搜索,重复此过程,直到找到或没有元素供搜索。示例代码:int main(){ int i = 1; vector<int> ...

2018-05-10 13:32:01 381

原创 迭代器失效问题

迭代器失效使用迭代器时需要注意: <1>不能在范围for循环中向vector对象添加元素 <2>任何可能改变vector对象容量的操作,比如push_back,都会使该vector对象的迭代器失效谨记:凡是使用了迭代器的循环体,都不要向迭代器所属的容器中添加元素...

2018-05-10 13:21:02 410 1

原创 Vi/Vim 如何消除搜索后的关键字高亮

今天在 vim 敲一些代码练手,熟悉一下 vim 命令,在 vim 编辑时,需要搜索代码里某个关键字,只要键入 /xxx 就可以了,比如,我要搜索一个函数名,我就键入 /func然后回车,一个文件中,所有出现这个字样的地方都会被高亮显示。按n键,就可以自动把光标跳到下一个。那么问题来了?怎么消除高亮呢? 通过查询资料了解到,只要键入 :noh 就可以了。或者是 键入 /xxx 一个...

2018-05-09 23:01:34 4189

原创 C++11特性--范围 for 语句

C++11特性–范围 for 语句作用: 遍历给定序列中的 每个元素并对序列中的每个值执行某种操作,语法形式为: for (declartion : expression) statementexpressin是一个对象,用于表示一个序列declaration定义一个变量,用于访问元素,每次迭代,变量都会被初始化下一个元素的值。例: st...

2018-05-09 22:43:21 160

原创 decltype 关键字

decltype类型指示符作用是选择返回操作数的数据类型,分析表达式得到它的类型,但不得到它实际的值 例: decltype(fun()) sum = x //sum的类型就是函数的返回类型如果decltype使用的表达式是一个变量,则decltype返回该变量的类型(包括顶层const 和引用在内)const int a = 0, &b = a; decltype...

2018-05-09 22:30:51 328

原创 C++11特性 auto 关键字

auto类型说明符(自动推导数据类型)auto让编译器通过初始值来推算变量的类型,显然auto变量必须有初始值 例如 auto str = “helloworld”;auto也能在一条语句中声明多个变量,但是所有变量的初始类型必须一样 例如 auto i = 99, n = 10;auto一般会忽略顶层const,保留底层const,如果希望推断出来的类型是顶层const,需要指出...

2018-05-09 22:26:48 215

转载 MarkdownPad2.5/2 注册码

User:Soar360@live.com授权:GBPduHjWfJU1mZqcPM3BikjYKF6xKhlKIys3i1MU2eJHqWGImDHzWdD6xhMNLGVpbP2M5SN6bnxn2kSE8qHqNY5QaaRxmO3YSMHxlv2EYpjdwLcPwfeTG7kUdnhKE0vVy4RidP6Y2wZ0q74f47fzsZo45JE2hfQBFi2O9Jldjp...

2018-05-09 21:53:39 170

原创 给定排序的数组,删除重复的位置,以便每个元素只出现一次。 并返回新的长度。

给定排序的数组,删除重复的位置,以便每个元素只出现一次。 并返回新的长度。 不要为另一个数组分配额外的空间,必须在常量内存中这样做。 例如,给定的输入数组A=[1,1,2], 你的函数应该返回长度=2,而A现在是[1,2]。 - 分析由于是排好序的,那么相同的元素必定相邻,所以可以比较相邻元素是否相同,我首先想到使用一个 index 指向数组的第一个元素,从第二哥元素开始遍历数组,...

2018-05-09 20:57:16 749

原创 TCP和UDP区别、

key:TCP是一种面向连接的、可靠的、字节流服务1.面向链接:TCP面向链接,面向连接意味着两个使用TCP的应用(通常是一个客户和一 个服务器)在彼此交换数据之前必须通过三次握手先建立一个TCP连接。 在一个TCP中仅有两方彼此通信,多播和广播不能用于TCP。 UDP是不可靠的传输,传输前不需要建立链接,可以应用多播和广播实现一对多...

2018-05-07 12:43:42 197

原创 内存分配方式

内存分配方式有三种:(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。 例如全局变量,static变量。(2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建, 函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令 集中,效率很高,但是分配的内存容量有限。(3)从堆上分配,亦称动态...

2018-05-07 12:38:40 156

转载 Linux常用命令集合

系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info...

2018-05-06 22:42:45 140

转载 gbd调试常用指令

1.对于在应用程序中加入参数进行调试的方法:直接用 gdb app -p1 -p2 这样进行调试是不行的。需要像以下这样使用:#gdb app(gdb) r -p1 -p2或者在运行run命令前使用set args命令:(gdb) set args p1 p2可以用show args 命令来查看2. 加入断点:break <linenumber>break <funcName&g...

2018-05-06 22:40:40 1209

转载 vim配置

默认的vi很多功能没有打开,我们可以自己根据需要自定义vi,则需要修改vi的配置文件,全局配置文件在/etc/vimrc中,但是一般只需要修改用户的配置文件就可以来,在用户目录下创建一个.vimrc文件#gedit  ~/.vimrc将下面的参数设置拷贝进去,当然不需要全部拷贝,可以挑自己想添加的功能即可set nocompatible " 关闭 vi 兼容模式syntax on " 自动语法高亮...

2018-05-06 22:34:39 165

原创 宏定义和内联函数的区别

    内联函数是代码被插入到调用者代码处的函数。如同 #define 宏,内联函数通过避免被调用的开销来提高执行效率,尤其是它能够通过调用(“过程化集成”)被编译器优化。     宏定义不检查函数参数,返回值什么的,只是展开,相对来说,内联函数会检查参数类型,所以更安全。     内联函数和宏很类似,而区别在于,宏是由预处理器对宏进行替代,而内联函数是通过编译器控制来实现的。而且内联函数是真正的...

2018-05-06 22:28:32 338

原创 extern 关键字

在C语言中,修饰符extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。 *注意extern声明的位置对其作用域也有关系,如果是在main函数中进行声明的,则只能在main函数中调用,在其它函数中不能调用。其实要调用其它文件中的函数和变量,只需把该文件用#include包含进来即可,为啥要用extern?因为用extern会加速程序的编译过程,这样能节省时...

2018-05-06 18:21:21 169

原创 const 关键字

const名叫常量限定符,用来限定特定变量,以通知编译器该变量是不可修改的。习惯性的使用const,可以避免在函数中对某些不应修改的变量造成可能的改动。  const修饰基本数据类型    <1>const修饰一般常量及数组   基本数据类型,修饰符const可以用在类型说明符前,也可以用在类型说明符后,其结果是一样的。在使用这些常量的时候,只要不改变这些常量的值便好。    ...

2018-05-05 21:54:37 133

转载 阿里确认布局自动驾驶,BAT再度聚首竞争白热化

现在,对于无人车的发展可以用“未来已来”四字来概括,因为当前各大科技公司都在加快相关技术的研发和战略布局,力图实现无人车量产。在中国,BAT中百度和腾讯已率先公布了自己在无人车领域的格局,而就在今天,阿里无人车路测曝光,随后阿里确认布局无人驾驶,并将由AI实验室首席科学家王刚负责此项目。至此,BAT已全部入局,不经意间,三家巨头又要在同一竞技场展开较量了。1阿里无人车路测曝光阿里无人车路测的曝光,可

2018-05-05 21:23:04 424

原创 static 关键字

控制变量的存储方式和可见性。 (1)修饰局部变量一般情况下,对于局部变量是存放在栈区的,并且局部变量的生命周期在该语句块执行结束时便结束了。但是如果用static进行修饰的话该变量便存放在静态数据区,其生命周期一直持续到整个程序执行结束。但是在这里要注意的是,虽然用static对局部变量进行修饰过后其生命周期以及存储空间发生了变化,但是其作用域并没有改变,其仍然是一个局部变量,作用域仅...

2018-05-04 22:37:07 143

原创 strcpy 无法在VS2013中使用的解决办法

原因:一般认为是vs准备弃用strcpy的,安全性较低,所以微软提供了strcpy_s来代替 然而,strcpy_s并没有strcpy好用,我们要想继续在VS2013中使用strcpy该怎么办 呢?下面是几种解决方法解决方法:      <1>其实在输出错误信息中有解决方法,“To disable deprecation , use _CRT_SECURE_NO_WARNINGS”,...

2018-05-03 22:26:58 1747 1

通讯录管理系统

基于单向链表实现的通讯录项目、可以实现插入、删除、更新联系人

2018-06-30

中新塞克2016年校招笔试题目

http://download.csdn.net/download/grassring1/9365579

2017-10-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除