c/c++
文章平均质量分 50
鲜橙大
慢慢沉淀,切勿浮躁,负重前行
展开
-
计算机网络
1、TCP相关面试题(1)介绍一下OSI七层模型和TCP五层模型?OSI七层模型从上到下依次为:应用层:为应用程序提供网络服务;表示层:数据格式转换、数据压缩和数据加密;会话层:建立、断开和维护通信链接;传输层:为上层协议提供端到端的可靠传输;网络层:寻址和路由;数据链路层:定义通过通信媒介互连的设备之间传输的规范;物理层:利用物理传输介质为数据链路层提供物理连接。TCP五层模型相比OSI七层模型,将OSI的应用层、表示层和会话层合为一层:应用层,其他不变。...原创 2021-10-28 18:57:46 · 320 阅读 · 0 评论 -
c++Static以及const类成员变量初始化
对于static const 类型的成员变量不管是旧的C++标准还是C++11都是支持在定义时初始化的。对于static 非const类型的成员变量C++03和C++11的标准都是不支持在定义时初始化的。对于const 非static类型的成员变量C++03要求必须在构造函数的初始化列表中来初始化,而C++11的标准支持这种写法,同时允许在定义时进行初始化操作。对于非static 非const成员变量,C++03标准不允许在成员变量定义时初始化,但是C++11标准允许在类的定义时对这些非静态变量进行初原创 2021-10-27 00:03:46 · 416 阅读 · 0 评论 -
TCP、UDP
1.网络模型网络模型应用层协议:http超文本传输协议、smtp邮件协议、FTP文本传输协议、SSH加密安全登录运输层:TCP、UDP网络层:IP、ICMP、ARP上图中有几个字段需要重点介绍下: 序号:seq 序号,占 32 位,用来标识从 TCP 源端向目的端发送的字节流,发起方发送数据时对此进行标记。 确认序号:ACK 序号,占 32 位,只有 ACK 标志位为1时,确认序号字段才有效,ack=seq+1。 标志位:共 6 个,即原创 2021-10-20 19:41:45 · 287 阅读 · 0 评论 -
刷题(2)统计字符数
描述写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字母,然后输出输入字符串中该字母的出现次数。不区分大小写,字符串长度小于500。输入描述:第一行输入一个由字母和数字以及空格组成的字符串,第二行输入一个字母。输出描述:输出输入字符串中含有该字符的个数。示例1输入:ABCabcA复制输出:2/*toupper将字母转换成大写*//*tolower将大写字母转换成大写*/#include<iostream>#includ原创 2021-06-27 14:29:41 · 224 阅读 · 0 评论 -
刷题(1)16进制转换
描述写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。输入描述:输入一个十六进制的数值字符串。注意:一个用例会同时有多组输入数据,请参考帖子https://www.nowcoder.com/discuss/276处理多组输入的问题。输出描述:输出该数值的十进制字符串。不同组的测试用例用\n隔开。示例1输入:0xA0xAA复制输出:10170#include<iostream>#include<math.h>us...原创 2021-06-26 00:58:15 · 367 阅读 · 0 评论 -
const *int、int const *、int *const的区别
#include<iostream>using namespace std;static int test = 1;const int iNum = 1;class Test{public: Test(); ~Test(); int const *test_num; const int *test_num2; //int *const test_num3; };Test::Test(){ int a = 2; int bv = 9; test_num .原创 2021-05-26 23:54:48 · 501 阅读 · 0 评论 -
C++简单的子类继承父类访问父类的成员函数和成员变量
#include<iostream> using namespace std; class A { public: A() { p = 1; } void Print(int &a) { ++a; cout<<"a == "<<a<<endl; } ~A() { p = 0; } int p; }; class B:public A ..原创 2020-12-25 00:03:17 · 5312 阅读 · 0 评论 -
xdg-open
xdg-open是linux下可以打开一个文件或链接打开链接:QProcess::startDetached("xdg-open https://www.baidu.com");打开文件:QProcess::startDetached("xdg-open filename");linux终端:xdg-open filename原创 2020-05-09 11:00:02 · 1976 阅读 · 0 评论 -
vim精准匹配,以及vim配置
例子:/\<hello\> 精准匹配,之查找hello, \<表示开头 \>表示结尾,因此/\<hello\>表示匹配以hello开头和hello结尾的单词。vim配置:vim ~/.vimrc文件"让vimrc配置变更立即生效autocmd BufWritePost $MYVIMRC source $MYVIMRCset numbersyntax onset autoindentset smartindentset backgrou...原创 2020-05-09 10:48:57 · 511 阅读 · 0 评论 -
c++设计模式
1.单例模式将类的构造函数声明为私有的,保证其他处的代码无法通过调用该类的构造方法来实例化对象,只有通过该类的静态方法来得到该类的唯一实例;在类中提供一个静态方法,调用该方法就类进行实例化。//单例模式#include<assert.h>#include<string.h>class one{ public: static cl...原创 2020-03-24 23:48:53 · 99 阅读 · 0 评论 -
c++多线程同步
在未加锁的情况下#include<iostream>#include<pthread.h>#include<stdlib.h>#include<unistd.h>using namespace std;pthread_mutex_t mutex;int ticket_num = 20;void *fun1(void *args...原创 2020-03-23 17:38:35 · 457 阅读 · 1 评论 -
Linux下的printf,与我们想象的不一样的printf
#include<stdio.h>int main(){ int a = 5; printf("%d: %d: %d: %d: %d",a++, a++, ++a, a++, ++a); return 0;}运行结果:9: 8: 10:...原创 2020-03-17 21:58:10 · 343 阅读 · 0 评论 -
缓存雪崩、缓存穿透、缓存击穿以及解决方案
缓存穿透缓存雪崩缓存击穿原创 2020-03-16 17:36:03 · 87 阅读 · 0 评论 -
c++八进制、10进制、16进制之间的转换
十进制转换八进制、十六进制、以及二进制c++中可以利用 cin>>hex>>a输入十六进制 cin>>oct>>a输入八进制利用cout<<hex<<a输出16进制 cout<<oct<<a输出八进制 cout<<dec<<a输出十进制#include<i...原创 2020-03-15 21:51:57 · 1075 阅读 · 0 评论 -
关于bit位的操作
#include<iostream>#include<stdint.h>#include<stdlib.h>#include<assert.h>using namespace std;class ActivityUtils{ public: static uint32_t rand_bit_off_index(...原创 2020-02-24 16:28:45 · 271 阅读 · 0 评论 -
error: call of overloaded ‘swap(int&, int&)’ is ambiguous
代码:#include<iostream> using namespace std; template <class T> void swap(T&a, T&b) { T tmp = a; a = b; b = tmp; } int main(){ int a ...原创 2019-10-23 14:50:54 · 1754 阅读 · 0 评论 -
数据结构单链表的合并
问题:将两个单链表合并思路:首先用尾插法建立两个链表LA,LB(头插法建立的链表顺序为倒序),遍历LA直到至LA的尾部即LA->next为空,让LA->指向LB的头部然后free(LB)这是两个链表,LA,LB另LA的尾部指向LB的首部,LA,LB即连接在了一起代码:#include<iostream>#include<malloc.h&...原创 2018-09-03 23:16:50 · 17524 阅读 · 3 评论 -
c语言二进制转换八进制
二进制转换为八进制把要转换的二进制数按照3位一组从右边往左边分组。不足3位的在左边补上0111001111001=001 110 001 111 001#include<stdio.h>#define MAX 1024 /*****************往左补0 n需要补0的个数*******************/int * Move(int *Elem,...原创 2018-12-30 15:46:03 · 10742 阅读 · 1 评论 -
redis的安装和简单的使用
redis是一个key-value存储系统。它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。支持的语言:许多语言都包含Redis支持,包括:Com...原创 2019-04-03 14:59:07 · 150 阅读 · 0 评论 -
认清int的取值范围到底是怎么来的
int的取值真正是怎么样的,刚好朋友问到了而且问的比较深,下面是我的一些解释:用计算器可以很明显看到int的取值范围int四个字节,八个半字节,32个bit 2147483647就是Int的最大值32个bit位,四位半个字节,八位一个字节;这是int的最大取值。如果给最大值 2147483647 + 1会是什么结果二进制加法,每个bit位置0往前进一位,最后结果...原创 2019-08-29 11:38:37 · 1215 阅读 · 1 评论 -
__attribute__使用,一个可以按照自己的内存对齐方式
该代码时基于linux下的#include<stdio.h> typedef struct attr { char date_1;...原创 2019-08-30 12:00:39 · 167 阅读 · 0 评论 -
小Q的歌单(2018腾讯笔试题)
还在实习的我今天有同学问我了一道编程题说是2018年腾讯校招的笔试题(我只是个即将大四的菜逼-哈哈哈)小Q的歌单:小Q有x首长度为A的不同歌和y首长度为B的歌,现在小Q想用这些歌组成一个总长度正好为k的歌单,每首歌只能在歌单中出现一次,在不考虑歌单内歌曲的先后顺序的情况下问有多少种组合方式输入描述:每个输入包含一个测试用例每个测试用例的第一行包含一个整数,表示歌单的总长度(当然...原创 2018-07-26 17:21:49 · 1115 阅读 · 1 评论