自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小肥羊快快跑

C++、网络基础、通信知识

  • 博客(70)
  • 收藏
  • 关注

转载 c/c++字符串处理大集合

转自:https://blog.csdn.net/wallwind/article/details/6827863参考:https://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html在此列举c/c++字符串处理函数,希望对初学者有一定帮助cchar st[100];1. 字符串长度strlen(st);2...

2018-07-31 16:25:01 1237

原创 字符串分隔

题目描述•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。 输入描述:连续输入字符串(输入2次,每个字符串长度小于100)输出描述:输出到长度为8的新字符串数组解题思路基础知识append函数:向string的后面追加字符或字符串。用法之一:向string后面加多个字符,string...

2018-07-31 15:16:52 137

原创 计算字符个数

题目描述写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。输入描述输入一个有字母和数字以及空格组成的字符串,和一个字符。输出描述输出输入字符串中含有该字符的个数。思路基础知识getline():读取一个字符串,包括空格,直到遇到换行符终止cin>>:读取一个字符串,遇到空格、tab、换行符终...

2018-07-30 22:56:38 157

原创 字符串最后一个单词的长度

题目描述计算字符串最后一个单词的长度,单词以空格隔开。 输入描述一行字符串,非空,长度小于5000。输出描述整数N,最后一个单词的长度。思路基础知识cin:是C++中的标准输入流对象,即istream类的对象。cin主要用于从标准输入读取数据,这里的标准输入,指的是终端的键盘。使用cin从标准输入读取数据时,通常用到的方法有cin>>, cin.get...

2018-07-30 22:01:32 159

转载 欢迎使用CSDN-markdown

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...

2018-07-29 21:13:53 118

原创 二叉树前序遍历

题目描述Given a binary tree, return the preordertraversal of its nodes' values.For example:Given binary tree{1,#,2,3}, 1 \ 2 / 3return[1,2,3].Note: Recursive solution is tri...

2018-07-28 13:48:11 266

原创 不使用乘法、除法和模运算符来除两个整数

题目描述不使用乘法、除法和模运算符来除两个整数。解题思路注意:此题操作对象为两个整数,不是两个正整数,因此要对符号进行判断基本解法:对被除数循环减除数,问题:算法效率不高,当被除数很大,除数很小时,效率会非常低。改进解法:每次循环递减时,将递减数翻倍,这样算法效率能够得到极大优化代码示例class Solution {     public: int divide(i...

2018-07-28 13:43:53 1126

原创 打印杨辉三角/帕斯卡三角问题

问题描述Given numRows, generate the first numRows of Pascal's triangle.For example, given numRows = 5,Return[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]解题思路杨辉三角形的规律是,每一行的每一个值...

2018-07-26 16:00:48 203

原创 vector、array、数组、new创建的动态数组,你到底该用哪一个

参考:http://www.cnblogs.com/chhuach2005/p/3627011.html数组:底层数据类型,存放在栈中,其内存的分配和释放完全由系统自动完成,效率最高动态数组:程序员由new运算符创建的,存放在堆区,需要delete运算符人工释放,否则会造成内存泄露vector:存放在堆中,由STL库中程序负责内存的分配和释放,使用方便代码执行时间:vector &...

2018-07-25 15:42:12 1674

原创 跳跳游戏2

题目描述给出一个非负整数数组,你最初定位在第一个数组的索引。数组中的每个元素代表您在该位置的最大跳跃长度。你的目标是在最小的跳跃次数中达到最后一个索引。例如:给定数组A=[2,3,1,1,4],到达最后一个索引的最小跳数是2。(从索引0到1,再到最后一个索引的3步。)解题思路设置变量last、cur,last表示每个台阶内最远去的地方,cur表示每一步直接能跨越的最远距离设置变量s...

2018-07-25 15:19:31 210

原创 求子序列和最大问题

问题描述在数组中找到相邻的子数组(至少包含一个数字),它的总和是最大的。例如,考虑到array[2−1−3、4、−1,2,1−5,4],连续的子数组[4, -1,  2,  1]有最大的和=6。解题思路1、从头开始累加,直到和为负。此时前面这段不能给后面的串带来正收益,应舍弃,sum清零2、然后在开始统计最大的sum.代码示例class Solution {pub...

2018-07-25 10:55:39 120

转载 STL简单介绍

参考:https://www.tianmaying.com/tutorial/cpp-stl-introduction定义STL(Standard Template Library)提供了一些常用的数据结构和算法的模板,1998年加入C++标准。STL中有三个重要的概念:容器:容纳各种数据类型的数据结构,是一系列的类模板。 迭代器:迭代器用来迭代地访问容器中的元素 算法:用来操作容...

2018-07-24 18:36:21 493

转载 构造函数和析构函数能否被继承

构造函数不能被继承参考:https://blog.csdn.net/maosong00/article/details/12012895构造方法是用来初始化类的对象,与父类的其他成员不同,他不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但是不继承父类的构造方法)。因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需要调用其父类的构造方法。如果没有显式的构造函数,...

2018-07-24 11:28:56 11817

转载 C++中的友元函数

参考:http://www.cnblogs.com/BeyondAnyTime/archive/2012/06/04/2535305.html友元函数介绍1、为什么要用友元函数(1)运算符重载的某些场合需要使用友元(2)两个类要共享数据的时候,具体来说,为了使其他类的成员函数直接访问该类的私有变量。即:允许外面的类或函数去访问类的私有变量和保护变量,从而使两个类共享同一函数。例如...

2018-07-24 10:14:18 368

原创 C++的三大特性:封装、继承和多态

参考:https://www.cnblogs.com/cxq0017/p/6490945.html封装所谓封装,就是将某些东西包装和隐藏起来,让外界无法直接使用,只能通过某些特定的方式才能访问。封装的目的是增强安全性和简化编程,使用者不低了解具体的实现细节,而只是通过外部接口以及特定的访问权限来使用类的成员。其中访问权限包括private、protected和public,private是私...

2018-07-24 09:31:13 295

原创 C++、C的区别

参考:https://www.douban.com/group/topic/22414944/参考:http://www.cnblogs.com/ckings/p/3632997.html继承关系是C->C++,C++是C的超集,C++完全向C兼容,C程序几乎不用修改即可在C++的编译器上运行,C++也称为带类的C,在C的基础上增加了许多面向对象的概念。虽然是C的扩展,但不意味着C功...

2018-07-23 11:09:54 185

转载 TCP和UDP区别详解

参考:https://blog.csdn.net/li_ning_/article/details/52117463TCP与UDP的区别总结:TCP面向连接(如打电话要先建立连接);UDP是无连接的,即发送数据之前不需要建立连接 TCP提供可靠的服务,也就是说,通过TCP连接传送的数据,无差错、不丢失、不重复、且按序到达;UDP尽最大努力交付,但不保证可靠交付 TCP面向字节流,实际上...

2018-07-23 09:40:56 306

原创 诺瓦科技提前批一面

TCP和UDP区别,用代码描述出TCP中Server的功能实现 C++和C相比的优势在哪 如何体现C++中的封装特性,举例说明 重载和重写的区别 虚函数和纯虚函数的区别,为什么会有纯虚函数? 内存泄露是什么?如何防止内存泄露?如何保证new/delete或malloc/free成对出现? C++中的struct和C中的struct区别 构造函数可以重写么?为什么? 对STL了解多少...

2018-07-22 23:08:51 1485 1

原创 跳跳游戏

好疲惫呀,感觉做不动了,需要一些鼓励题目描述Given an array of non-negative integers, you are initially positioned at the first index of the array.Each element in the array represents your maximum jump length at that positi...

2018-07-13 21:27:13 432

原创 赛道加油过程 贪心

题目描述There are N gas stations along a circular route, where the amount of gas at station i isgas[i].You have a car with an unlimited gas tank and it costscost[i]of gas to travel from station i to its n...

2018-07-13 15:06:14 150

原创 字符串是否回文

题目描述Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.For example,"A man, a plan, a canal: Panama"is a palindrome."race a car"is not a palind...

2018-07-13 10:24:05 116

原创 重载、覆盖、隐藏

重载是指函数不同的参数表(参数的类型、个数、顺序不同),对同名函数的名称做修饰,然后这些同名函数就成了不同的函数(至少对于编译器来说是这样的)。对于重载函数的调用,在编译期间就已经确定,是静态的,它们的地址在编译期间就绑定了与多态无关。注意,重载不关心函数的返回值类型。成员函数被重载的特征如下:(1)相同的范围(在同一个类中)(2)函数名字相同(3)参数列表不同(4)virtual关键字可有可无覆...

2018-07-11 19:45:06 130

原创 C++函数传递参数的方式有哪些?

C++函数传递参数的方式有以下四种(1)值传递当进行值传递时,就是将实参的值复制到形参中,而形参和实参不是同一个存储单元,所以函数调用结束后,实参的值不会发生改变。(2)指针传递当进行指针传递时,形参是指针变量,实参是一个变量的地址,调用函数时,形参(指针变量)指向实参变量单元。这种方式还是“值传递”,只不过实参的值是变量的地址而已。而在函数中改变的不是实参的值,而是实参地址所指向的变量的值。(3...

2018-07-10 21:47:28 1439

原创 函数指针和指针函数的区别?

指针函数是指带指针的函数,本质上是一个函数,函数返回类型是某一类型的指针,其形式一般如下所示:类型标识符 *函数名(参数列表)函数指针是指向函数的指针变量,本质上是一个指针变量,表示的是一个指针,它指向的是一个函数,其形式一般如下:类型说明符 (*函数名)(参数)例如,int(*pf)(int x),它的意思就是声明一个函数指针,而pf = func,则是将func函数的首地址赋值给指针。引申1:...

2018-07-10 21:34:24 7249

原创 不用除法操作符如何实现两个正整数的除法?

基础知识(1)常用的等式:-n = ~(n - 1) = ~n + 1(2)获取整数n的二进制中最后一个1:n &( -n ) 或者n & ~(n - 1)(3)去掉整数n的二进制中的最后一个1:n &(n - 1)方法一根据除法运算的原理进行减法操作,对除法循环减被除数,减一次结果加一,直到刚好减为0或余数小于被除数为止。方法二递归法求解。如果每次采用将比较数翻倍的比较方...

2018-07-09 22:20:49 2854

原创 嵌入式编程中,什么是大端?什么是小端?

小端模式CPU对操作数的存放方式是从低字节到高字节,也就是低地址存放低字节,高地址存放高字节。大端模式CPU对操作数的存放方式是从高字节到低字节,也就是高地址存放低字节,低地址存放高字节。引申:如何判断计算机处理器是大端还是小端?...

2018-07-09 21:48:52 1496

原创 链表右旋

题目描述给定一个列表,将链表向右旋转k个位置,其中k是非负的。例如,给定1 - > 2 - > 3 - > 4 - > 5 - > NULL和 k = 2,返回4 - > 5 - > 1 - > 2 - > 3 - > NULL。解题思路遍历链表,记录链表的长度l,并将原链表的最后一个节点与第一个节点相连注意k可能会大于len,因此k%=...

2018-07-09 19:56:38 177

原创 合并两个有序链表

题目描述合并两个已排序的链表并作为一个新的链表返回。新的列表应该通过拼接前两个列表的节点来完成。解题思路新建一节点,遍历链表,谁小谁就是新建节点的next我的脑洞如果l1中某个节点小于l2中某个节点,则继续比较l1中下一个节点与l2当前节点的大小,l2同理奇怪的代码示例class Solution {public:    ListNode *mergeTwoLists(ListNode *l1, ...

2018-07-09 17:35:49 137

原创 保证每个链表值只出现一次

题目描述给定一个已排序的链表,删除所有重复的元素,使每个元素只出现一次。例如,给定1 - > 1 - > 2,返回1 - > 2给定1 - > 1 - > 2 - > 3 - > 3,返回1 - > 2 - > 3。解题思路遍历数组,遇到重复的就删除代码示例class Solution {public:    ListNode *deleteD...

2018-07-09 17:19:58 146

原创 删除链表中重复节点

题目描述给定一个已排序的链表,删除所有具有重复数字的节点,只保留与原始链表不同的数字。例如,给定1 - > 2 - > 3 - > 3 - > 4 - > 4 - > 5,返回1 - > 2 - > 5。给定1 - > 1 - > 1 - > 2 - > 3,返回2 - > 3。解题思路...

2018-07-09 17:14:30 363

原创 RIP、OSPF、BGP三种协议

转载自:http://blog.csdn.net/jungle_hello https://blog.csdn.net/Jungle_hello/article/details/51438886RIP( Routing Information Protocol )路由信息协议是在一个AS系统中使用地内部路由选择协议,是个非常简单的基于距离向量路由选择的协议。 它路由器生产商之间使用的第一个开放标准...

2018-07-07 10:07:50 7665

原创 链表分区问题

题目描述给定一个链表和一个值x,对它进行分区,使小于x的所有节点都先于大于或等于x的节点。例如,给定1 - > 4 - > 3 - > 2 - > 5 - > 2和x = 3返回1 - > 2 - > 2 - > 4 - > 3 - > 5解题思路新建两个链表,分别存储小于x的节点和大于等于x的节点代码示例class Solution {...

2018-07-05 22:00:40 450

原创 如何实现位操作求两个数的平均值

一般方法:(x + y) / 2存在问题:当两个数比较大时,如果两个数的和大于了机器位数能够表示的最大值,可能会存在数据溢出的情况改进:采用位运算方法(x & y) + ((x ^ y) >> 1)(x & y) + ((x ^ y) >> 1), (x & y)表示的是取出x与y二进制位数中都为“1”的所有位,x^y表示的是x与y中有一个为“1”的...

2018-07-05 21:04:09 871

原创 最有效的计算2乘以8的方法是什么?

2<<3CPU直接支持位运算,效率最高。一个数左移n位,相当于乘以了2的几次方。右移则相当于除法引申:如何快速求取一个整数的7倍?(X << 3) - X 注意:由于-的优先级高于<<,所以不能去掉括号,否则结果不正确...

2018-07-05 20:48:06 5179

原创 C++中struct与class的区别是什么?

如果没有多态和虚拟继承,在C++中,struct和class的存取效率完全相同,存取class的数据成员与非虚函数效率和struct完全相同,不管该数据成员是定义在基类还是派生类。class的数据成员在内存中的布局不一定是数据成员的声明顺序,C++只保证处于同一个access section的数据成员按照声明顺序排列在C++中,class和struct做类型定义是只有两点区别:默认继承权限不同,c...

2018-07-05 20:11:51 17317

原创 C和C++中struct的区别是什么

C语言的struct不能有函数成员,而C++的struct可以有; C语言的struct中数据成员没有private、public和protected访问权限的设定,而C++的struct的成员有访问权限设定; C语言中的struct是没有继承关系的,而C++的struct却有丰富的继承关系。C语言中的struct是用户自定义数据类型(User Defined Type),它是没有权限设置的...

2018-07-05 19:54:08 3653

原创 C语言中struct与union的区别是什么?

相同struc(结构体)与union(联合体)都是符合结构,由多个不同的数据类型成员组成。不同1. 占用地址空间unionunion所有成员共用一块地址空间,即联合体只存放了一个被选中的成员。所有成员不能同时占用内存空间,它们不能同时存在,所以一个联合型变量的长度等于其最长的成员的长度。structstruct中所有成员占用空间是累加的,其所有成员都存在,不同成员会存放在不同的地址。在计算一个结构...

2018-07-05 19:38:34 1312

原创 链表反转(从m位置到n位置)

题目描述将一个链表从m位置反向到n,并在一个通道内完成。例如:给定1 - > 2 - > 3 - > 4 - > 5 - > NULL,m = 2和n = 4返回1 - > 4 - > 3 - > 2 - > 5 - > NULL注意:给定m, n满足以下条件:1 ≤ m ≤ n ≤ 链表长度解题思路(1)找到m位置的节点和m位置的前置节...

2018-07-05 16:26:57 4729

原创 升序链表转换成二叉搜索树(BST)

题目描述给定一个按升序排序的单链列表,将其转换为高度平衡的BST。解题思路关键点:二叉搜索树的中序遍历是升序的(1)快慢指针找到链表中点,作为根节点(2)递归链表的左半部分为左子树(3)递归链表的右半部分为右子树代码示例class Solution {public:    TreeNode *sortedListToBST(ListNode *head) {        return sorte...

2018-07-05 09:46:17 516

原创 复杂链表的深度拷贝

题目描述给出一个链表,使每个节点包含一个附加的随机指针,该指针可以指向列表中的任何节点或null。返回列表的深度拷贝副本解题思路(1)拷贝新节点,并插入到原节点的后边(2)拷贝新节点的随机指针(3)将新节点从原链表中分离出来代码示例1、low版class Solution {public:    RandomListNode *copyRandomList(RandomListNode *head...

2018-07-04 22:56:27 370

空空如也

空空如也

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

TA关注的人

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