cpp
文章平均质量分 83
兔老大RabbitMQ
我是全站最硬核博主。我话讲完,谁赞成,谁反对?
展开
-
百战c++(12)
输入:排序前的大文件,名称为char * pinoutfilename ,其内容为用分号分隔的ArrayType类型的数组元素,可装满4个100M字节的数组。链表的长度是不定的,而且环出现的地方也是不定的,环有可能在头,有可能在中间。预定义的数组类型(细节无关紧要),Pinputarray,Poutarray分别为排序前的指针和排序后的指针。TRUE:FALSE;44.int (* (*f)(int, int))(int)表示什么含义?45.x=x+1,x+=1,x++,为这三个语句的效率排序。原创 2022-10-08 11:18:40 · 2594 阅读 · 1 评论 -
百战c++(11)
33. 写出程序运行结果。则func(1)=?原创 2022-10-08 11:17:52 · 1889 阅读 · 1 评论 -
百战c++(10)
如果ClassA中定义并实现虚函数int func(void),ClassB中也实现该函数,那么上述变量a->func()将调用哪个类里面的函数?30.编写一个函数将一条字符串分成两部分,将前半部分按ASCII码升序排序,后半部分不变,(如果字符串是奇数则中间的字符不变,)最后再将前后两部分交换,然后将该字符串输出,29.编写一个函数,函数接收一个字符串,是由十六进制数组成的一组字符串,函数的功能是把接到的这组字符串转换成十进制数字.并将十进制数字返回.//这里也帮忙看一下。//这里还有也看一下。原创 2022-10-08 11:17:12 · 1206 阅读 · 0 评论 -
百战c++(9)
但如果显然应试者做得不错,那么我就扔出下面的追加问题,这些问题是比较难的,我想仅仅非常优秀的应试者能做得不错。这个问题将做为这个测验的一个愉快的结尾。我发现这个问题的最大好处是:这是一个关于代码编写风格,代码的可读性,代码的可修改性的好的话题。在我的经验里,好的嵌入式程序员非常准确地明白硬件的细节和它的局限,然而PC机程序往往把硬件作为一个无法避免的烦恼。上面的代码定义p1为一个指向结构的指,p2为一个实际的结构,这也许不是你想要的。这是一个非常微妙的问题,任何人答对这个问题(正当的原因)是应当被恭喜的。原创 2022-10-08 11:16:13 · 1141 阅读 · 1 评论 -
百战c++(8)
下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的。3). 在许多的处理器/编译器中,浮点一般都是不可重入的。此外,ISR应该是短而有效率的,在ISR中做浮点运算是不明智的。不用说,如果你能得到后两点,那么你的被雇用前景越来越光明了。1、一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起, 给出一个age, 在些链表中删除学生年龄等于age的学生信息。43. 写一个在一个字符串(n)中寻找一个子串(m)第一个位置的函数。原创 2022-10-08 11:15:14 · 1034 阅读 · 0 评论 -
百战c++(7)
(3)已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序,这次要求用递归方法进行。(2)已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。destructed B(10)形参析构。(1)已知链表的头结点head,写一个函数把这个链表逆序 ( Intel){ destructed B(5)形参析构。{ destructed B(5)形参析构。40. 链表题:一个链表的结点结构。原创 2022-10-08 11:14:05 · 6122 阅读 · 2 评论 -
百战c++(6)
感觉上结构仅仅象一堆缺乏封装和功能的开放的内存位,而类就象活的并且可靠的社会成员,它有智能服务,有牢固的封装屏障和一个良好定义的接口。sizeof(p),p 为指针得到的是一个指针变量的字节数,而不是p 所指的内存容量。(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual 关键字。答案:struct 的成员默认是公有的,而类的成员默认是私有的。答案:通用寄存器给出的地址,是段内偏移地址,相应段寄存器地址*10H+通用寄存器内地址,就得到了真正要访问的地址。原创 2022-10-08 11:13:23 · 946 阅读 · 0 评论 -
百战c++(5)
这样,模块B中调用模块A中的函数时,在编译阶段,模块B虽然找不到该函数,但是并不会报错;重写:和多态真正相关。当子类重新定义了父类的虚函数后,父类指针根据赋给它的不同的子类指针,动态的调用属于子类的该函数,这样的函数调用在编译期间是无法确定的(调用的子类的虚函数的地址无法给出)。(2)在C中引用C++语言中的函数和变量时,C++的头文件需添加extern "C",但是在C语言中不能直接引用声明了extern "C"的该头文件,应该仅将C文件中将C++中定义的extern "C"函数声明为extern类型。原创 2022-10-08 11:12:26 · 3274 阅读 · 0 评论 -
百战c++(4)
主要原因是这四个操作符没有side effect,因此,它们必须构造一个对象作为返回值,可选的方案包括:返回一个对象、返回一个局部变量的引用,返回一个new分配的对象的引用、返回一个静态对象引用。例如,被函数返回的引用只是作为一个临时变量出现,而没有被赋予一个实际的变量,那么这个引用所指向的空间(由new分配)就无法释放,造成memory leak。这时,被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应的目标对象(在主调函数中)的操作。原创 2022-10-08 11:11:15 · 923 阅读 · 0 评论 -
百战c++(数据库2)
写满了:redo log 里的容量是有限的,如果数据库一直很忙,更新又很频繁,这个时候 redo log 很快就会被写满了,这个时候就没办法等到空闲的时候再把数据同步到磁盘的,只能暂停其他操作,全身心来把数据同步到磁盘中去的,而这个时候,就会导致我们平时正常的SQL语句突然执行的很慢,所以说,数据库在在同步数据到磁盘的时候,就有可能导致我们的SQL语句执行的很慢了。中去,而是把这些更新的记录写入到 redo log 日记中去,等到空闲的时候,在通过 redo log 里的日记把最新的数据同步到。原创 2022-10-08 11:09:36 · 3421 阅读 · 9 评论 -
百战c++(数据库1)
悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。相对悲观锁而言,乐观锁假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让返回用户错误的信息,让用户决定如何去做(选择性越高,查询效率也越高。中,在聚簇索引之上创建的索引称之为辅助索引,辅助索引访问数据总是需要二次查找,非聚簇索引都是辅助索引,像复合索引、前缀索引、唯一索引(原创 2022-10-08 11:06:37 · 12088 阅读 · 3 评论 -
百战c++(os2)
正常情况下,子进程是通过父进程创建的,子进程再创建新的进程。通过kill发送SIGTERM或者SIGKILL信号消灭产生僵尸进程的进程,它产生的僵死进程就变成了孤儿进程,这些孤儿进程会被init进程接管,init进程会wait()这些孤儿进程,释放它们占用的系统进程表中的资源。如果进程不调用wait / waitpid的话, 那么保留的那段信息就不会释放,其进程号就会一直被占用,但是系统所能使用的进程号是有限的,如果大量的产生僵死进程,将因为没有可用的进程号而导致系统不能产生新的进程。每次淘汰队尾数据块。原创 2022-10-08 11:01:26 · 986 阅读 · 1 评论 -
百战c++(os1)
Linux中的锁互斥锁:mutex,用于保证在任何时刻,都只能有一个线程访问该对象。当获取锁操作失败时,线程会进入睡眠,等待锁释放时被唤醒读写锁:rwlock,分为读锁和写锁。处于读操作时,可以允许多个线程同时获得读操作。但是同一时刻只能有一个线程可以获得写锁。其它获取写锁失败的线程都会进入睡眠状态,直到写锁释放时被唤醒。注意:写锁会阻塞其它读写锁。当有一个线程获得写锁在写时,读锁也不能被其它线程获取;写者优先于读者(一旦有写者,则后续读者必须等待,唤醒时优先考虑写者)。原创 2022-10-08 10:59:30 · 1125 阅读 · 0 评论 -
百战c++(3)
堆:由程序员手动分配和释放,完全不同于数据结构中的堆,分配方式类似链表。由malloc(c语言)或new(c++)来分配,free(c语言)和delete(c++)释放。若程序员不释放,程序结束后由系统释放。堆由低向高生长。空间大 灵活性大 速度慢。栈:由编译器自动分配和释放的,存放函数的参数值,局部变量的值。操作方式类似数据结构中的栈。由高向低生长。空间小,灵活性差全局(静态)存储区:存放全局变量和静态变量。原创 2022-10-08 10:53:55 · 2018 阅读 · 0 评论 -
百战c++(网络)
还设有一个保活计时器,显然,客户端如果出现故障,服务器不能一直等下去,白白浪费资源。5)客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态。4)服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq=w,此时,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。原创 2022-10-08 10:52:26 · 3884 阅读 · 0 评论 -
百战c++(2)
指针和数组的区别野指针是什么野指针就是指向一个已删除的对象或者未申请访问受限内存区域的指针请你回答一下为什么析构函数必须是虚函数?为什么C++默认的析构函数不是虚函数。原创 2022-10-08 10:50:07 · 5905 阅读 · 1 评论 -
百战c++(1)
Public和private的区别public和private是类里的关键字,用于规定类内数据或者成员函数的访问权限。private类型的数据或者函数,只能在相应的类内被访问,而public类型的数据或者函数被访问的权限比较宽,还可以在其它类或者其它函数中被访问。可以通过友元函数的方式在其他类中访问私有成员函数。构造函数可以私有吗?可以。私有构造函数意味着只能在自身内部创建实例,加上static可以保证改类只有一个实例。这种方式常用语单例模式。什么是多态,什么是动态绑定。原创 2022-10-08 10:46:59 · 9746 阅读 · 4 评论 -
c++面试题总结1
堆:由程序员手动分配和释放,完全不同于数据结构中的堆,分配方式类似链表。由malloc(c语言)或new(c++)来分配,free(c语言)和delete(c++)释放。若程序员不释放,程序结束后由系统释放。堆由低向高生长。空间大 灵活性大 速度慢。栈:由编译器自动分配和释放的,存放函数的参数值,局部变量的值。操作方式类似数据结构中的栈。由高向低生长。空间小,灵活性差全局(静态)存储区:存放全局变量和静态变量。包括data段(全局初始化区)与BSS段(全局未初始化区)其中 初始化的全局变量和静态变量存放在d原创 2022-09-19 16:34:38 · 823 阅读 · 0 评论 -
网易校园招聘历年经典面试题汇总:C++研发岗
(32)、C++内存模型,类的数据放在什么地方,类的函数放在什么地方,虚函数表,虚函数表指针,虚继承情况下的虚函数表。(39)、map与hashmap底层实现(红黑树以及哈希表),哈希碰撞是如何解决的,两种实现各自的优缺点。(12)、1000万条数据,找出第8大的元素,如果数据均位于[0,1000]这个范围,能否进一步优化。(13)、设计一个自动售货机,应该有哪些软件模块组成,每部分工作,画出类图。(14)、现在有一条线,以及线上多个点(参考X轴吧),给定一个区间范围。(4)、隐式类型转换与显示类型转换;原创 2022-09-19 15:20:57 · 2583 阅读 · 0 评论 -
软件测试必须知道的精华总结
上学时的总结,现在看不论是考试还是工作都很有用原创 2022-08-30 11:13:51 · 17084 阅读 · 19 评论 -
小白入门Haskell 语言
haskell语言入门原创 2022-08-29 16:26:23 · 9648 阅读 · 1 评论 -
FIX三天日记-quick fix源码
quickfix源码阅读原创 2022-08-11 17:28:42 · 10306 阅读 · 2 评论 -
FIX三天日记-quick fix简介
quickfix的使用和基本实现原创 2022-08-11 11:19:54 · 39767 阅读 · 4 评论 -
vscode远程连接开发机失败/解决方案大合集
超级有效解决vscode连接问题。原创 2022-08-05 10:02:39 · 89604 阅读 · 3 评论 -
十万字cpp成神总结-看完月薪25k
最近会放出cpp成神之路的所有总结,大家感兴趣的可以收藏一波。原创 2021-04-23 15:29:19 · 4436 阅读 · 11 评论 -
超硬核!十万字c++题,让你秒杀老师和面试官(上)
我发现呀,这大家对面试题的需求还是很大的,这里总结了上千道知识点,能换您一个收藏吗原创 2021-04-21 11:35:35 · 12381 阅读 · 80 评论 -
(acm)C++加速输入的几种方法
1.C++IO流的同步和绑定在C++中,cin和cout的速度其实不并不慢,C++中的流的IO速度相当的快,其速度与初始设定的缓存区大小和硬盘的IO速度有关。但在C++中,为了兼容C的IO(scanf和printf),cin和cout被设置为与C的IO同步,这样导致cin和cout的速度不如scanf和printf快。另外,在默认情况下,标准输入设备(cin)与标准输出设备(cout)绑定在一起,它保证在调用输入之前已经刷新输出缓冲区,这样也会降低读取效率。所以,我们可以手动取消他们与C语言转载 2020-07-10 21:33:48 · 13987 阅读 · 67 评论 -
俄罗斯方块(C++)
#include<iostream>#include<stdlib.h>#include<windows.h>#include<time.h>#include<conio.h>using namespace std;#define A1 0//A代表长条型,B为方块,C为L型,D为闪电型(实在无法描述那个形状)#define A2 1#define B 2#define C11 3#define C12 4#defin.原创 2020-05-31 17:16:01 · 2973 阅读 · 41 评论 -
cpp知识汇总(1) 指针vs引用、static、const
引用和指针的区别?指针是一个实体,需要分配内存空间。引用只是变量的别名,不需要分配内存空间。 引用在定义的时候必须进行初始化,并且不能够改变。指针在定义的时候不一定要初始化,并且指向的空间可变。(注:不能有引用的值不能为NULL) 有多级指针,但是没有多级引用,只能有一级引用。 指针和引用的自增运算结果不一样。(指针是指向下一个空间,引用时引用的变量值加1) sizeof 引用得到的是所指向的变量(对象)的大小,而sizeof 指针得到的是指针本身的大小。 引用访问一个变量是直接访问,而指针访原创 2020-05-31 15:05:34 · 4698 阅读 · 59 评论 -
c++ STL迭代器实例
1、vector#include <iostream>#include <vector>using namespace std;int main(int argc, char* argv[]){ // Create and populate the vector vector<int> vecTemp; for (int i = 0; i<6; i++) { vecTemp.push_back(i); } // Dis原创 2020-05-22 09:58:01 · 3938 阅读 · 33 评论 -
go语言一天入门(下)
结构体和c一样package mainimport "fmt"type Books struct { title string author string subject string book_id int}func main() { // 创建一个新的结构体 fmt.Println(Books{"Go 语言", "www.runoob.com", "Go 语言教程", 6495407}) // 也可以使用 key =>原创 2020-05-18 17:02:04 · 10996 阅读 · 42 评论 -
go语言一天入门(上)
Go语言是静态类型语言,因此变量(variable)是有明确类型的,编译器也会检查变量类型的正确性。声明变量的一般形式是使用 var 关键字:var name typeGo和许多编程语言不同,它在声明变量时将变量的类型放名称后。这样做的好处就是可以避免像C语言中那样含糊不清的声明形式,例如:int* a, b;。其中只有 a 是指针而 b 不是。如果你想要这两个变量都是指针,则需要将它们分开书写。而在 Go 中,则可以和轻松地将它们都声明为指针类型:var a, b *intGo语言的基..原创 2020-05-18 16:08:55 · 14336 阅读 · 57 评论 -
C++ 多态和虚函数
虚函数实现多态#include <iostream>using namespace std;//基类Peopleclass People{public: virtual void display(); //声明为虚函数};void People::display(){ cout<<"无业游民。"<<endl;}//派生类Teacherclass Teacher: public People{public: virtu原创 2020-05-09 12:53:37 · 5334 阅读 · 33 评论 -
C++ STL 线性容器的用法
vectorvector 是顺序容器的一种,是可变长的动态数组,支持随机访问迭代器,所有stl算法都能对 vector 进行操作。vector 容器在实现时,动态分配的存储空间一般都大于存放元素所需的空间。例如,哪怕容器中只有一个元素,也会分配 32 个元素的存储空间。这样做的好处是,在尾部添加一个新元素时不必重新分配空间,直接将新元素写入适当位置即可。在这种情况下,添加新元素的时间也是常数...原创 2020-05-08 14:55:26 · 5954 阅读 · 63 评论 -
C++ STL与迭代器
将容器类模板实例化时,会指明容器中存放的元素是什么类型的:可以存放基本类型的变量,也可以存放对象。对象或基本类型的变量被插入容器中时,实际插入的是对象或变量的一个复制品。STL 中的许多算法(即函数模板),如排序、查找等算法,在执行过程中会对容器中的元素进行比较。这些算法在比较元素是否相等时通常用运算符进行,比较大小通常用<运算符进行,因此,被放入容器的对象所属的类最好重载==和<...原创 2020-05-08 13:05:49 · 8295 阅读 · 11 评论 -
C++继承详解
废话不多说直接上代码class 派生类名:[继承方式] 基类名{ 派生类新增加的成员};继承方式限定了基类成员在派生类中的访问权限,包括 public(公有的)、private(私有的)和 protected(受保护的)。此项是可选项,如果不写,默认为 private(成员变量和成员函数默认也是 private)。现在我们知道,public、protected、private ...原创 2020-05-08 00:55:09 · 4631 阅读 · 17 评论 -
C++类和对象详解
创建对象两种创建对象的方式:一种是在栈上创建,形式和定义普通变量类似;另外一种是在堆上使用 new 关键字创建,必须要用一个指针指向它,读者要记得 delete 掉不再使用的对象。通过对象名字访问成员使用点号.,通过对象指针访问成员使用箭头->,这和结构体非常类似。成员变量和函数类可以看做是一种数据类型,它类似于普通的数据类型,但是又有别于普通的数据类型。类这种数据类型是一个包...原创 2020-05-08 00:43:54 · 3995 阅读 · 14 评论 -
C++ new和delete
在C语言中,动态分配内存用 malloc() 函数,释放内存用 free() 函数。如下所示:int *p = (int*) malloc( sizeof(int) * 10 ); //分配10个int型的内存空间free(p); //释放内存在cpp中,这两个函数仍然可以使用,但是C++又新增了两个关键字,new 和 delete:new 用来动态分配内存,delete 用来释放内...原创 2020-05-07 20:23:14 · 3542 阅读 · 26 评论 -
C++std命名空间和头文件详解
一个中大型软件往往由多名程序员共同开发,会使用大量的变量和函数,不可避免地会出现变量或函数的命名冲突。当所有人的代码都测试通过,没有问题时,将它们结合到一起就有可能会出现命名冲突。例如小李和小韩都参与了一个文件管理系统的开发,它们都定义了一个全局变量 fp,用来指明当前打开的文件,将他们的代码整合在一起编译时,很明显编译器会提示 fp 重复定义(Redefinition)错误。为了解决合作开发...原创 2020-05-07 20:16:44 · 12387 阅读 · 28 评论 -
什么是编译器?(程序是怎么跑起来的)
我们平时所说的程序,是指双击后就可以直接运行的程序,这样的程序被称为可执行程序(Executable Program)。在 Windows 下,可执行程序的后缀有 .exe 和 .com(其中 .exe 比较常见);在类 UNIX 系统(Linux、Mac OS 等)下,可执行程序没有特定的后缀,系统根据文件的头部信息来判断是否是可执行程序。可执行程序的内部是一系列计算机指令和数据的集合,它们都...原创 2020-05-07 19:51:36 · 8898 阅读 · 76 评论