自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 C++后台开发最常问到的面试题

一、C/C++方面1、说说C++中的多态及其实现;https://blog.csdn.net/u010864559/article/details/70242984  https://blog.csdn.net/menyangyang/article/details/247792573、带虚函数与否的空类大小;    不带虚函数:sizeof为1;带虚函数:sizeof为4(3...

2018-09-24 13:06:45 2737

原创 C++后台开发面试常考

一、C/C++方面1、说说C++中的多态及其实现;https://blog.csdn.net/u010864559/article/details/70242984https://blog.csdn.net/menyangyang/article/details/247792572、volatile关键字;volatile提醒编译器它后面所定义的变量随时都有可能改变,因此...

2018-09-11 20:46:23 6129 2

原创 假设有一个排好序的数组,数字都是两个两个出现的,只有一个是单独出现的,求这个数

class Solution{public:int FindNumAppearOnce(const vector<int>& nums){ if(nums.empty()) return 0; int num=0; for(auto i:nums) num ^= i; return num;}};...

2018-07-31 17:04:30 374

原创 有两个链表,怎么求交点

struct ListNode{int val;ListNode* next;ListNode(int x):val(x),next(nullptr);};class Solution{public:ListNode* findNode(ListNode* node1,ListNode* node2){ if(node1==nullptr || node2==null...

2018-07-31 16:46:40 331

原创 求一个数组的最长连续子序列

分析:如果允许O(nlogn)的复杂度,那么可以先排序,可是本题要求O(n)。由于序列里的元素是无序的,又要求O(n),首先要想到用哈希表。用一个哈希表unordered_map<int,bool> used 记录每个元素是否使用,对每个元素,以该元素为中心,往左右扩张,直到不连续为止,记录下最长的长度。class Solution {public:int ...

2018-07-31 16:33:23 1762

原创 判断一个数是不是回文数

class Solution{public: bool isPalindrome(string s) { auto left=s.begin(),right=prev(s.end()); while(left<right) { if(*left != *right) ...

2018-07-31 16:17:39 636

原创 求二叉树的深度

//树的深度int TreeDepth(BTree* root) { int nLeft, nRight; if(root == NULL)//必不可少的条件,递归的出口 return 0; nLeft = TreeDepth(root->lchild); nRight = TreeDepth(root->r...

2018-07-31 16:08:31 379

原创 Remove Duplicates from Sorted List 删除单项链表中重复的节点 (1 2 2 3 3 9) -> (1 2 3 9)

class Solution {public: ListNode *deleteDuplicates(ListNode* head) { if(head==nullptr) return head; for(ListNode* prev=head,*cur=head->next; cur; cur=prev->...

2018-07-31 15:37:53 192

原创 char*s1, const char *s2,删除s1中s2出现过的字符

class Solution {public: char* delChar(char* s1,char* s2) { if(s1==nullptr) return nullptr; if(s2==nullptr) retrun s1; const int table...

2018-07-27 09:49:49 1127

原创 C++后台开发--算法方面

1、逆转单链表;https://blog.csdn.net/m0_38099899/article/details/809572352、链表带环检测以及环入口;https://blog.csdn.net/m0_38099899/article/details/809572553、链表排序(nlogn不退化);    https://blog.csdn.net/one_piece...

2018-07-08 11:23:36 478

原创 C++后台开发--数据结构方面

1、二叉树前、中、后、层序遍历递归与非递归实现;https://blog.csdn.net/will130/article/details/514881422、图的深搜和广搜;    https://blog.csdn.net/u010006643/article/details/456735713、两个栈实现一个队列(考虑线程安全);    https://blog.csdn.net/hanji...

2018-07-08 11:22:42 205

原创 C++后台开发--STL方面

1、说说std::vector底层机制;2、说说std::list的底层机制;3、说说std::map的底层机制;4、说说std::deque底层机制;5、std::vector的自增长机制;https://blog.csdn.net/TQH_Candy/article/details/523877146、内存池的实现;    https://blog.csdn.net/K346K346/arti...

2018-07-08 11:21:36 252

原创 C++后台开发--C/C++方面

1、说说C++中的多态及其实现;https://blog.csdn.net/u010864559/article/details/70242984  https://blog.csdn.net/menyangyang/article/details/247792572、volatile关键字;volatile提醒编译器它后面所定义的变量随时都有可能改变 ,因此编译后的程序每次需要存储或读取这个变量...

2018-07-08 11:20:40 2209

原创 链表带环检测以及环入口

/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public:ListNode* detectCycle(ListNode* head){ ListN...

2018-07-08 10:25:45 325

原创 逆转单链表

/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* ReverseList(ListNode* pHead) { if(pHead == NULL || pH...

2018-07-08 10:24:24 328

原创 Linux内核--进程管理

1、进程生命周期:    某个进程通过系统调用fork,创建一个用于执行程序的进程。生成此进程的进程称为父进程,被生成的进程称为子进程。子进程通过复制父进程的数据得以创建;    父进程执行系统调用wait,等待子进程结束;    子进程通过系统调用exec将程序读取到内存并开始执行;    当程序执行完毕后,子进程通过系统调用exit结束自身的运行并进入僵尸状态;    父进程得到子进程的执行结...

2018-06-24 18:35:55 371 8

原创 Linux内核--进程

1、进程:在执行程序时,内核首先将程序(文件)读入内存,然后将此内存区域分配给进程。进程拥有独立的虚拟空间,可以使用虚拟地址空间的地址,由MMU(内存管理单元)转换为实际的内存地址(物理地址)。进程拥有唯一的ID;内存以进程为单位分配,进程的虚拟地址空间各自独立,从节约内存使用量的角度出发,有时也会将同一块内存分配给多个进程的虚拟地址空间。2、进程的并行执行:内核会随时切换执行中的进程,将时间片分...

2018-06-24 15:41:39 224

转载 APUE学习笔记 第十七章 高级进程间通信

第十七章 高级进程间通信    本章将介绍一种高级IPC——UNIX域套接字机制。这种形式的IPC可以在同一计算机上运行的两个进程之间传送打开文件描述符。服务进程可以使它们的打开文件描述符与指定的名字相关联,同一系统上运行的客户进程可以使用这些名字与服务器汇聚。我们还会了解到操作系统如何为每一个客户进程提供一个独用的IPC通道。 参考:https://blog.csdn.net/lincoln_2...

2018-04-26 19:44:47 198

转载 APUE学习笔记 第十六章 网络IPC:套接字

第十六章 网络IPC:套接字    本章将考察不同计算机上的进程相互通信的机制:网络进程间通信。在本章中将描述套接字网络进程间通信接口,进程用该接口能够和其他进程通信。参考:http://www.cnblogs.com/runnyu/p/4648678.htmlhttps://blog.csdn.net/lincoln_2012/article/details/46692089 ...

2018-04-26 19:43:27 149

转载 APUE学习笔记 第十五章 进程间通信

第十五章 进程间通信 参考:https://blog.csdn.net/lincoln_2012/article/details/46692057http://www.cnblogs.com/runnyu/p/4648232.htmlhttps://blog.csdn.net/men_wen/article/details/59131762https://blog.csdn.net/men_wen...

2018-04-26 19:19:22 162

转载 APUE学习笔记 第十四章 高级I/O

第十四章 高级I/O    本章涵盖众多概念和函数非阻塞I/O、记录锁、I/O多路转换函数(select和poll函数)、异步I/O、readv和writev函数以及存储映射I/O(mmap)。 参考:http://www.cnblogs.com/runnyu/p/4645754.htmlselect: https://blog.csdn.net/men_wen/article/details/5...

2018-04-26 19:08:15 152

转载 APUE学习笔记 第十三章 守护进程

第十三章 守护进程    守护进程是生存期长的一种进程,它们常常在系统引导装入时启动,仅在系统关闭时才终止。因为它们没有控制终端,所以说它们是在后台运行的。本章将说明守护进程结构,以及如何编写守护进程程序。 参考:http://www.cnblogs.com/runnyu/p/4645046.html ...

2018-04-26 18:58:59 164

转载 APUE学习笔记 第十二章 线程控制

第十二章 线程控制    本章将讲解控制线程行为方面的详细内容,介绍线程属性和同步原语属性。前面的章节中使用的都是它们的默认行为,接下来还将介绍同一进程中的多个线程之间如何保持数据的私有性。最后讨论基于进程的系统调用如何与线程进行交互。 参考:http://www.cnblogs.com/runnyu/p/4643764.html...

2018-04-26 18:55:03 127

转载 APUE学习笔记 第十一章 线程

第十一章 线程    本章将进一步深入理解进程,了解如何使用多个控制线程在单进程环境中执行多个任务。一个进程中的所有线程都可以访问该进程的组成部件,如文件描述符和内存。不管在什么情况下,只要单个资源需要在多个用户间共享,就必须处理一致性问题。本章最后将讨论目前可用的同步机制,防止多个线程在共享资源时出现不一致的问题。 参考:http://www.cnblogs.com/runnyu/p/46433...

2018-04-26 18:48:51 123

原创 APUE学习笔记 第十章 信号

第十章 信号    信号是软件中断,它提供了一种处理异步事件的方法。本章对信号机制进行综述,并说明每种信号的一般用法。 1、信号概念每个信号都有一个名字,这些名字都以3个字符SIG开头。在头文件<signal.h>中,信号名都被定义为正整形常量。1.1 产生信号的条件:(1)当用户按某写终端按键时,引发终端产生的信号。如:Ctrl+C产生SIGINT信号。(2)硬件异常产生信号。如除零...

2018-04-26 16:28:32 232

转载 APUE学习笔记 第九章 进程关系

第九章 进程关系    本章将详细地说明进程组以及POSIX.1引入的会话的概念,还将介绍登录shell和所有从登录shell启动的进程之间的关系。 参考:http://www.cnblogs.com/runnyu/p/4641051.html...

2018-04-26 11:33:48 147

转载 APUE学习笔记 第八章 进程控制

       本章介绍unix系统的进程控制,包括创建新进程、执行程序和进程终止。还将说明进程属性的各种ID——实际、有效和保存的用户ID和组ID,以及他们如何受到进程控制原语的影响。还包括解释器文件和system函数,进程会计机制。 参考:https://blog.csdn.net/men_wen/article/details/53122986...

2018-04-25 20:59:11 146

原创 APUE学习笔记 第七章 进程环境

第七章 进程环境    本章中将学习:当程序执行时,其main函数是如何被调用的;命令行参数是如何传递个新程序的;典型的存储空间布局是什么样式;如何分配另外的存储空间;进程如何使用环境变量;进程的各种不同终止方式等。另外,还将说明longjmp和setjmp函数以及它们与栈的交互作用,进程的资源控制。 1、 main函数C程序总是从main函数开始执行,main函数的原型是:int main(in...

2018-04-25 20:15:43 154

原创 APUE学习笔记 第六章 系统数据文件和信息

第六章 系统数据文件和信息1、口令文件UNIX系统口令文件包含如下字段,这些字段包含在<pwd.h>中定义的passwd结构中口令文件是/etc/passwd,每一行包含上面各字段,字段之间用冒号分隔。可以使用finger命令打印指定用户的有关信息:finger -p 用户名POSIX.1定义了两个获取口令文件项的函数,在给定用户登录名或数值用户ID后,这两个函数就能查看相关项#inc...

2018-04-25 18:14:45 146

原创 APUE学习笔记 第五章 标准I/O库

第五章 标准I/O库1、流和FILE对象对于标准I/O库,它们的操作是围绕流进行的。流的定向决定了所读、写的字符是单字节还是多字节的。#include <stdio.h>#include <wchar.h>int fwide(FILE *fp,int mode);//返回值:若流是宽定向的,返回正值;若流是字节定向的,返回负值;若流是未定向的,返回0.fwide函数可...

2018-04-25 17:03:20 148

原创 APUE学习笔记-第四章-文件和目录

第四章 文件和目录1、函数stat、fstat、fstatat和lstat#include<sys/stat.h>Intstat(const char *restrict pathname,struct stat *restrict buf);Intfstat(int fd,struct stat *buf);Intlstat(const char *restrict pathn...

2018-04-22 21:49:51 162

原创 APUE学习笔记 第三章 文件I/O

APUE学习笔记 第三章 文件I/O1、函数open和openat       调用open或openat函数可以打开或创建一个文件#include<fcntl.h>Int open(const char *path,into flag,…/*mode_t made*/);Int openat(int fd,const char* path,into flag,…/*mode_t ...

2018-04-22 16:20:38 312

转载 数据结构与算法之排序

大话数据结构--排序#include <stdio.h> #include <string.h>#include <ctype.h> #include <stdlib.h> #include <io.h> #include <math.h> #include <time.h>

2018-02-28 12:49:33 128

转载 数据结构与算法之查找总结

大话数据结构--查找1、顺序表查找#include "stdio.h" #include "stdlib.h" #include "io.h" #include "math.h" #include "time.h"#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 100 ...

2018-02-28 11:23:07 224

原创 C/C++错题集

1.  charc = '\72'; 中的\72代表一个字符,72是八进制数,代表ASCII码字符“:”。2.  10*a++ 中a先进行乘法运算再自增(笔试中经常喜欢出这类运算符优先级容易混淆的输出问题)。3.  const和static的作用 太常见的问题了,下面给出一个较详细的参考答案:static关键字:1)函数体内static变量的作用范围为函数体。不同于auto变量。该变量的内存只被分...

2018-02-27 21:30:47 8027

原创 C/C++错题集之虚函数相关

静态多态性:编译期间确定具体执行哪一项操作,主要是通过函数重载和运算符重载来实现的; 动态多态性:运行时确定具体执行哪一项操作,主要是通过虚函数来实现的。如果类中含有虚函数,则编译器需要为类构建虚函数表,类中需要存储一个指针指向这个虚函数表的首地址,注意不管有几个虚函数,都只建立一张表,所有的虚函数地址都存在这张表里,类中只需要一个指针指向虚函数表首地址即可。 虚继承的作用是什么? 在多继承中,子...

2018-02-27 21:21:10 149

原创 C/C++错题集之重载相关

可作为函数重载判断依据的有:参数个数、参数类型、const修饰符; 不可以作为重载判断依据的有:返回类型。C++中可以重载的运算符:new/delete、new[]/delete[]、++等。 可以重载的运算符:、.、::、?:、sizeof、typeid、.、**、不能改变运算符的优先级。引申:重载++和–时是怎么区分前缀++和后缀++的? 例如当编译器看到++a(先自增)时,它就调用opera...

2018-02-27 21:11:41 269

原创 C/C++错题集之static相关

静态数据成员只能在全局区域进行初始化,而不能在类体中进行(构造函数中初始化也不行),且静态数据成员不涉及对象,因此不受类访问限定符的限制。 类方法是指类中被static修饰的方法,无this指针    类方法是可以调用其它类的static方法的    可以在类方法中生成实例对象再调用实例方法    成员方法又称为实例方法局部变量说明为static存储数,其生存期将得到延长,离开局部时,局部变量的值...

2018-02-27 21:01:09 366

原创 C/C++错题集之const相关知识点

const和static的作用 太常见的问题了,下面给出一个较详细的参考答案:static关键字:1)函数体内static变量的作用范围为函数体。不同于auto变量。该变量的内存只被分配一次。因此其值在下次调用时仍维持上次的值。2)在模块内的static全局变量可以被模块内的所有函数访问。但不能被模块外的其他函数访问。3)在模块内的static函数只可被这一模块内的其它函数调用。这个函数的使用范围...

2018-02-27 20:51:01 391

原创 数据结构之杂项

稀疏矩阵压缩的存储方法是:三元组和十字链表指针数组:int* a[4]  表示数组a中的元素都是int型指针数组指针:int (*a)[4]  表示指向数组a的指针快慢指针是判断一个单向链表有没有环的一种方法KMP算法的特点是在模式匹配时指示主串的指针不会变小类型安全就是说,如果两个类型要相互转换,必须要显示的转换,不能偷偷摸摸的只用一个等于号就隐式转换了;MFC中CString是类型安全的类。K...

2018-02-27 11:12:26 120

空空如也

空空如也

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

TA关注的人

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