自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 2018 C++开发工程师面试题大合集(持续更新)

 (一)2018.4 拼多多实习服务端1、 一个C++源文件从文本到可执行文件经历的过程对于C/C++编写的程序,从源代码到可执行文件,一般经过下面四个步骤:1).预处理,产生.ii文件2).编译,产生汇编文件(.s文件)3).汇编,产生目标文件(.o或.obj文件)4).链接,产生可执行文件(.out或.exe文件)2、#include 的顺序以及尖叫括号和双...

2018-07-19 15:26:16 54412 1

转载 线程

参见:Linux C编程一站式学习  1.线程的概念我们知道,进程在各自独立的地址空间中运行,进程之间共享数据需要用mmap或者进程间通信机制,本节我们学习如何在一个进程的地址空间中执行多个线程。有些情况需要在一个进程中同时执行多个控制流程,这时候线程就派上了用场,比如实现一个图形界面的下载软件,一方面需要和用户交互,等待和处理用户的鼠标键盘事件,另一方面又需要同时下载多个文件,等...

2018-07-18 15:36:03 1104

转载 linux最常用的20个命令

转自:https://www.oschina.net/translate/useful-linux-commands-for-newbies?lang=chs&page=2# 1. ls命令ls命令是列出目录内容(List Directory Contents)的意思。运行它就是列出文件夹里的内容,可能是文件也可能是文件夹。 root@tecmint:~# lsA...

2018-07-15 09:59:24 1647

原创 (一)TCP客户端/服务器通信------基础函数篇

1. 客户端和服务器程序流程图 2. 基本TCP套接字编程(1) Socket函数Socket函数:指定期望的协议族(IPv4、IPv6等)和套接字类型(字节流、数据报等),返回套接字描述符(成功时>0的整数) 参数:family:协议族;type:套接字类型;protocol:协议类型常数。(2) Bind函数Bind函数:为服务器绑定本地ip和端口,一般为通配ip地址和服务器众所周知端口...

2018-07-11 17:47:44 1666

原创 C++后台面试常考 (C/C++方面)

C++后台面试常考(一)     C/C++方面条款01:说说C++中的多态及其实现条款02:volatile关键字1、 Volatile关键字和const对应。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化(不再把变量值放入寄存器中),从而可以提供对特殊地址的稳定访问(直接访问内存)。2、 volatile用在如下的几个地方: 1) 中断服务程序中修改的供其它程序检测的变量需要...

2018-05-15 15:11:28 749

原创 2019界秋招(C++)

 在牛客网讨论区 淘到的某大佬的GitHub,感觉非常棒,受益良多https://github.com/linw7/Skill-Tree------------------------------------------------------------------------------------------------------------------------------...

2018-09-14 17:53:33 1240

原创 heap(max-heap最大堆、min-heap最小堆)

参考: 《STL源码剖析》 heap概述heap并不归属于STL容器组件,它是个幕后英雄,扮演priority_queue的助手(底层实现)。所谓binary heap就是一种完全二叉树,也就是说,整颗binary tree除了最底层的叶子节点之外,是填满的,而最底层的叶节点由左至右又不得有空隙。完全二叉树整棵树内没有任何节点漏洞,这带来一个好处:我们可以利用array来存储所...

2018-08-16 10:24:14 21790

原创 8.15 网易游戏互动娱乐提前批面试(初级游戏研发工程师)

1、笔试(手撕代码)两道题,半小时。1)单字符串压缩 :输入:ABBBCCD , 输出AB3C2D2)多字符串压缩输入:AABCABCD,输出A(ABC)2D(暴力写了一半,时间到了)2、一面0)自我介绍1)笔试代码交给面试官。(我介绍了自己代码的思路)2)多态,多态的实现,派生类虚表的布局是怎样的(虚表布局不太清楚)3)模板类了解吗?实现一个unique_...

2018-08-15 13:52:44 1411 2

转载 C++智能指针

参考:https://www.cnblogs.com/lsgxeva/p/7788061.html   和 《Linux多线程服务端编程》                                                                   C++11——智能指针C++11中有unique_ptr、shared_ptr与weak_ptr等智能指针(smar...

2018-08-10 21:00:19 296

原创 待弄清的知识点

1)如何检测内存泄露valgrind工具集的memcheck工具2)线程池3)智能指针4)浏览器打开一个链接的全过程5)fork和vfork,fork做了哪些工作6)守护进程的创建 背景知识: 守护进程是脱离终端并在后台运行的进程,执行过程中信息不会显示在终端上并且也不会被终端发出的信号打断。 操作步骤: 创建子进程,父进程退出:fork...

2018-08-10 10:58:29 456

原创 Linux IPC之共享内存

参考:1)https://blog.csdn.net/ruizeng88/article/details/67023462)https://github.com/linw7/Skill-Tree/blob/master/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.md 共享内存共享内存(shared memory)是最简单的Linux进程间通信方...

2018-08-07 14:39:43 283

原创 Linux常用命令

gcc-o:指定生成的输出文件;-E:仅执行编译预处理;-S:将C代码转换为汇编代码;-wall:显示警告信息;-c:仅执行编译操作,不进行连接操作。g++ gdbnetstat ...

2018-08-04 16:01:36 210

原创 阿里新零售一面(C++后台开发)

1、自我介绍2、科研经历(没说太清楚,面试官说下一个话题)3、说说项目(说了一下华为的软挑和京东的物流优化的比赛)4、C++基本知识(iphone不太会录音,只记得下面几个问题了)1)说说static2)说说多态3)如何实现多态的4)虚表和虚表指针5)什么时候用虚析构函数6)GDB调试 ,问了几个命令 (命令有点记不住,崩了)7)动态链接和静态链接说一下 (...

2018-08-03 19:36:38 544

原创 二叉搜索树、AVL树、RB-tree(红黑树)

参见:《STL源码剖析》 (一)二叉搜索树二叉树:一个二叉树如果不为空,便是由一个根节点和左右二叉子树组成。二叉搜索树:1)是一颗二叉树;2)任何节点的键值一定大于其左子树中的每一个节点的键值,并小于其右子树中的每一个节点的键值。查找:插入:删除:1)若是叶子节点直接删除,修改父节点的指针。2)若只有一个子节点,直接将其子节点连至其父节点3)若有...

2018-07-24 14:35:57 740

转载 基于TCP协议的网络程序

参见:Linux C编程一站式学习 下图是基于TCP协议的客户端/服务器程序的一般流程(该图出自[UNPv13e]):图 37.2. TCP协议通讯流程 建立连接的过程(该图出自[UNPv13e]):图 37.3. 建立连接的过程 服务器调用socket()、bind()、listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状...

2018-07-20 10:00:13 616

转载 socket编程基础

参见:Linux C编程一站式学习 socket这个词可以表示很多概念: 在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程,“IP地址+端口号”就称为socket。 在TCP协议中,建立连接的两个进程各自有一个socket来标识,那么这两个socket组成的socket pair就唯一标识一个连接。socket本身有“插座”的意思,因此...

2018-07-19 20:54:58 239

转载 TCP/IP协议基础

参见:Linux C编程一站式学习 1. 以太网(RFC 894)帧格式 以太网的帧格式如下所示(该图出自[TCPIP]):图 36.6. 以太网帧格式 其中的源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的。用ifconfig命令看一下,“HWaddr 00:15:F2:14:9E:3F”部分就是硬件地址。协议字段有三...

2018-07-19 11:44:36 1087

转载 TCP/IP协议栈与数据包封装

参见:Linux C编程一站式学习 TCP/IP协议栈与数据包封装TCP/IP网络协议栈分为应用层(Application)、传输层(Transport)、网络层(Network)和链路层(Link)四层。如下图所示(该图出自[TCPIP])。图 36.1. TCP/IP协议栈 两台计算机通过TCP/IP协议通讯的过程如下所示(该图出自[TCPIP])。图 ...

2018-07-19 09:12:34 1244

转载 进程

参见:Linux C编程一站式学习 1.进程控制 1)fork函数: fork函数的特点概括起来就是“调用一次,返回两次”,在父进程中调用一次,在父进程和子进程中各返回一次。从上图可以看出,一开始是一个控制流程,调用fork之后发生了分叉,变成两个控制流程,这也就是“fork”(分叉)这个名字的由来了。子进程中fork的返回值是0,而父进程中fork的返回值则是子进程...

2018-07-18 10:37:30 343

转载 信号

 参见:Linux C编程一站式学习 (一)信号的基本概念  为了理解信号,先从我们最熟悉的场景说起: 用户输入命令,在Shell下启动一个前台进程。 用户按下Ctrl-C,这个键盘输入产生一个硬件中断。 如果CPU当前正在执行这个进程的代码,则该进程的用户空间代码暂停执行,CPU从用户态切换到内核态处理硬件中断。 终端驱动程序将Ctr...

2018-07-16 13:44:25 381

原创 gdb入门------gdb基本命令

参见:Linux C编程一站式学习1.单步执行和跟踪函数调用backtrace(或bt)查看各级函数调用及参数finish执行到当前函数返回,然后停下来等待命令frame(或f) 帧编号选择栈帧info(或i) locals查看当前栈帧局部变量的值list(或l)列出源代码,接着上次的位置往下列,每次列10行list 行号列出从第几行开始的源代码list 函数名列出某个函数的源代码next(或n)...

2018-07-15 15:19:32 593

原创 TCP客户端/服务器网络编程------多进程并发模型(附带实现)

同步阻塞迭代模型是最简单的一种IO模型。1)服务器端代码main函数#include "unp.h"intmain(int argc, char **argv){ int listenfd, connfd; pid_t childpid; socklen_t clilen; struct sockaddr_in cliaddr, servaddr; liste...

2018-07-13 18:43:43 1873

原创 (二)TCP客户端/服务器通信------poll函数

poll函数poll提供的功能与select类似,不过在处理流设备时,它能提供额外的信息。参数:1. fdarray:指向一个结构体数组的第一个元素的指针。每个数组元素都是一个pollfd结构,用于指定测试某个给定描述符fd的条件。    fd:被检查的描述符;events:测试条件(作为调用值);revents:描述符的返回状态(返回结果)poll识别三类数据:普通、优先级带和高级优先级带。2....

2018-07-13 14:52:31 1845

原创 (二)TCP客户端/服务器通信------select函数

select函数该函数允许进程指示内核等待多个事件中的任何一个发生,并只在有一个或多个事件发生或经历一段指定的时间后才唤醒它。也就是说,我们调用select告知内核对哪些描述符(就读、写或异常条件)感兴趣以及等待多长时间。我们感兴趣的描述符不局限于套接字,任何描述符都可以使用select来测试。参数:1. timeout:它告知内核等待所指定描述符中的任何一个就绪可花的最长时间。    1)永远等...

2018-07-12 15:27:07 2868

原创 (二)TCP客户端/服务器通信------I/O模型

前言对于一个套接字上的输入操作,第一步通常涉及等待数据从网络中到达。当所等待分组到达时,它被复制到内核中的某个缓冲区。第二步就是把数据从内核缓冲区复制到应用进程缓冲区。1.阻塞式I/O模型进程调用recvfrom,其系统调用直到数据报到达且被复制到应用进程的缓冲区中或者发生错误才返回。进程从调用recvfrom开始到它返回的整段时间内是被阻塞的。2.非阻塞I/O模型进程把一个套接字设置成非阻塞是在...

2018-07-12 10:24:50 558

转载 ”linux学习之路” (感觉写的很好,更像是网络编程学习路线图)

转:https://www.oschina.net/question/587367_156024很多同学接触Linux不多,对Linux平台的开发更是一无所知。 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员, 掌握Linux是一种很重要的谋生资源与手段。 下来我将会结合自己的几年的个人开发经验,及对 Linux,更是类UNIX系统,及开源软件文化, 谈谈Linu...

2018-07-11 18:40:14 9718 3

原创 UNIX网络编程环境搭建(ubuntu系统)

1.unix网络编程卷1:套接字联网API(第三版) 源代码下载:http://www.unpbook.com/src.html2.解压下载的源码到某一目录(我的是:/home/damage/文档/unpv13e)3.切换到当前源码目录     4.依次执行下列命令./configure cd libmake cd ../libfreemake5.make libfree可能会出现错误解决方案:在...

2018-07-11 18:21:32 1025

原创 C++primer中文版(第四版)(个人笔记)

第一章    快速入门1、 C++的大部分基本要素:内置类型、库类型(istream\ostream等)?、类类型、变量、表达式、语句和函数。2、 每个C++程序必须有main函数,且main函数是(唯一)被操作系统显示调用的函数。3、 main函数的返回值必须使int型。4、 返回0,代表正常。5、 输入输出流iostream 输入cin, 输出cout。6、 Endl 是特殊值,称为操作符,将...

2018-05-15 15:07:32 1256

原创 Effective STL 50条有效使用STL的经验(个人笔记)

Effective STL 50条有效使用STL的经验1.   容器条款01:慎重选择容器类型1.     容器分类。1)序列容器(vector、string、deque和list)和关联容器(set、map、multiset、multimap)。2)或连续内存容器和基于节点的容器。2.     连续内存容器:vector、string、deque和非标准的rope。3.     基于节点的容器:...

2018-05-15 15:03:45 2591

原创 Effective C++改善程序与设计的55个具体做法(第三版)(个人笔记)

Effective C++改善程序与设计的55个具体做法(第三版)1、       让自己习惯C++条例01.:视C++为一个语言联邦1、  C,C++的基础。局限:没有模板(template)、没有异常(exceptions)、没有重载…2、  Objective-Oriented C++。封装、继承、多态、虚函数。3、  Template C++。其中MTP,模板元编程。4、  STL。容器、...

2018-05-15 14:59:07 1361

空空如也

空空如也

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

TA关注的人

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