CVTE2019校招笔试

vector中删除元素时,指向被删除元素和它后面元素的迭代器都失效了;如果添加一个元素,可能导致所有内容重新分配,所有迭代器均失效。因此在循环中使用erase操作时,要特别注意。不过erase删除元素后会返回一个迭代器指向删除元素的下一个元素。

A错

vector是用动态数组实现的,当容量不够时会扩容,导致存储位置变化

vector会重新申请一块空间

B对

最大的区别是当待查找的 KEY 不存在时:

1.map::find 返回一个空迭代器(map::end)。

2.map::operator[] 将用 VALUE 默认的构造函数创建一个对象并插入到 map 中,将其返回。

故C错

C++ STL 的实现:

1.vector  底层数据结构为数组 ,支持快速随机访问

2.list    底层数据结构为双向链表,支持快速增删

3.deque   底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问

4.stack   底层一般用23实现,封闭头部即可,不用vector的原因应该是容量大小有限制,扩容耗时

5.queue   底层一般用23实现,封闭头部即可,不用vector的原因应该是容量大小有限制,扩容耗时

6.45是适配器,而不叫容器,因为是对容器的再封装

7.priority_queue 的底层数据结构一般为vector为底层容器,堆heap为处理规则来管理底层容器实现

8.set       底层数据结构为红黑树,有序,不重复

9.multiset  底层数据结构为红黑树,有序,可重复 

10.map      底层数据结构为红黑树,有序,不重复

11.multimap 底层数据结构为红黑树,有序,可重复

12.hash_set 底层数据结构为hash表,无序,不重复

13.hash_multiset 底层数据结构为hash表,无序,可重复 

14.hash_map      底层数据结构为hash表,无序,不重复

15.hash_multimap 底层数据结构为hash表,无序,可重复 

ABC 是顺序性容器:

vector: 是一段连续的内存块

list:是所有的数据元素分开保存,可以是任何两个元素没有连续

deque:是多个连续的内存块

三者区别:

vector:查询性能好,并且在末端增加数据也很好,除非它重新申请内存, 适合高效地随机存储

list:是一个链表,任何一个元素可以是不连续的,但它都有两个指向上一元素和下一元素的指针,所以它对插入、删除元素性能是最好的,而 查询性能非常差; 适合大量地插入和删除操作而不关心随即存储 的要求

deque: 介于两者之间,兼顾了数组和链表的优点,它是分块的链表和多个数组的结合,所有它有比list好的查询性能,比vector好的插入、删除性能。

如果你需要随机存取又关心两端数据的插入和删除,那么deque是最佳之选。

D(stack)是容器适配器:

是一个容器类的改编,为程序员提供了堆栈的全部功能,也就是说实现了一个先进先出(FILO)

的数据结构。

故D对

 

useradd 用户名 【添加一个用户】 如:useradd CVTE
passwd 用户名 【给指定的用户名修改密码】 如:passwd wangxin
userdel 用户名 【删除一个用户,但是该用户在home文件下的子文件夹会保留】 如:userdel wangxin
userdel -r 用户名 【删除一个用户,并且删除连同该用户在home文件夹下的子文件夹】 如:userdel -r wangxin

选A

 

 IIC是半双工 spi全双工 uart是全双工  B对

在USB1.x,USB2.0等低于USB3.0的USB接口标准中由于物理介质的限制,只具有1对差分信号线,USB DP+ 和 USB DM-,所以都属于半双工传输。USB 活动都是由主机发起。USB3.0 标准针对此进行了改进,增加了5根信号线,分别是:SSTXP+,SSTXM-,GND,SSRXP+,SSRXM-,因此可以支持全双工。D错

 

 

A错

SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现多个SPI设备互相连接。提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。

 I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信(我的平衡小车读取MPU6050模块的数据就是用I2C总线)。在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。

  UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多(单片机的书上有介绍的,其实也算不上复杂),一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。

是英文Universal Serial BUS(通用串行总线)的缩写,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯,是应用在PC 领域的接口技术。USB 接口支持设备的即 即用和热插拔功能。USB 是在1994 年底由尔、

C对

 

选D我也不知道为啥

 

 

 

运行结果是2

 

D共享内存效率最高
共享内存( shared memory ) :共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。

 

 

 

 

发布了10 篇原创文章 · 获赞 0 · 访问量 225

猜你喜欢

转载自blog.csdn.net/qq_37554547/article/details/100852057