PPS 2013校园招聘 研发类笔试题目(C++)

文章来源:http://www.mianshibaike.com/a/C_C__/C__/20130710/301_2.html,转载请注明。

1、vector和list的区别

区别:1)vector的对象实在一块连续的内存空间上,而list的对象可以不在来连续的内存空间上。

   2)vector元素的随机访问的效率很高,插入和删除效率较低,当vector存储的对象的构造较为复杂时,移动vector的元素需要调用对象的拷贝构造函数,效率因而很低。vector是离散存储的,访问元素时需要从头或者尾部开始时进行遍历(不能随机访问),删除和插入元素相比vector的效率高,不需要移动元素。vector的大小扩张通常是2倍的扩展。

  3)vector是单向的,list是双向的。

  4)vector适用:对象数量变化少,简单对象,随机访问元素频繁;list适用:对象数量变化大,对象复杂,插入和删除频繁。

2、C++中const的一些常用方法

1)定义一个只读的变量。(而非一个常量)

2)修饰函数的参数。当我们希望函数的实参不被改变时,用const修饰函数的形参,防止实参发生改变,特别是指针参数,防      止指针本身发生改变。

3)修饰类的成员函数,可以防止类的数据成员和this指针发生改变。

4 )修饰一个类的对象。

      例如:const CMyClass mc,这时的mc对类成员变量和成员函数的调用是有限制的:
      a、能读取类的成员变量而不能去修改它;
      b、只能调用末端有const修饰的函数。

3、输出数组的K个最大值

使用STL中的partial_sort.

partial_sort使用的是堆排序,建堆的时间复杂度为O(n),调整堆的时间度杂度为o(logn),如果调用partial_sort时middle的值为last的值,则相当于调用sort,对所有元素排序,但是堆排序是稳定的排序。假如求的是m个元素的partial_sort,则,o(n) + m*o(logn);

相比使用sort()函数使用的快速排序,其时间复杂度为n(logn)。

4、对链表进行排序

struct Node

{

int key;

Node *next
};

5、 给出只允许进程单例运行的代码

在linux/unix环境下通过文件所实现,见APUE-单实例守护进程。

为了正常运作,某些守护进程时实现为单实例的,也就是在忍一时刻只运行该守护进程的一个副本。例如,该守护进程可能需要互斥的访问一个设备。在cron守护进城的情况下,如果同时有多个实力运行,那么每个飞奔都可能试图开始某个预定的操作,于是造成了该操作系统的重复执行,很可能导致出错。


使用文件锁和记录锁机制的方法可以用来保证一个守护进城只有一个副本在运行。如果每一个守护进程创建一个文件,并且在整个文件上加上一把写锁,那就只允许创建一把这样的写锁。所以在此之后的如试图在创建一把这样的写锁就将失败,一次后序的守护进程副本指明已有一个副本正在运行。
文件和记录锁提供了一种方便的互斥机制。如果守护进程在整个文件上得到一把写锁,那么在该守护进程终止时,这把锁江北自动的删除。简化了复原苏圩的处理,出去了对以前的守护进程实力需要进城清理的有关操作。

6、读出指定目录下的txt文件,统计txt文件数目

7、tcp三次握手的序列图

文章来源:http://www.mianshibaike.com/a/C_C__/C__/20130710/301_2.html,转载请注明。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用PPS设置USRP B210进行同步,需要进行以下步骤: 1. 首先,需要将USRP B210的一个输出端口连接到另一个USRP B210的输入端口。这可以使用同轴电缆完成。 2. 然后,需要在每个USRP B210上配置PPS输入和输出。这可以通过使用UHD(USRP硬件驱动程序)库中的函数完成。以下是一个示例代码段: ```c #include <uhd/uhd.h> #include <uhd/utils/thread.hpp> // Define the PPS configuration for the USRP B210 uhd::time_spec_t pps_time = uhd::time_spec_t(0.0); uhd::time_spec_t pps_period = uhd::time_spec_t(1.0 / 1000000.0); uhd::time_spec_t pps_offset = uhd::time_spec_t(0.0); // Create the USRP B210 object uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make("type=b200"); // Configure the PPS input and output usrp->set_time_source("external"); usrp->set_time_unknown_pps(uhd::time_spec_t()); usrp->set_time_next_pps(pps_time + pps_period); usrp->set_time_pps(pps_time + pps_offset); usrp->set_clock_source("external"); ``` 3. 最后,需要启动USRP B210的采样流,以便可以接收或传输数据。这可以使用UHD库中的函数完成。以下是一个示例代码段: ```c // Define the USRP B210 stream configuration uhd::stream_args_t stream_args("fc32"); // Create the USRP B210 RX and TX streams uhd::rx_streamer::sptr rx_stream = usrp->get_rx_stream(stream_args); uhd::tx_streamer::sptr tx_stream = usrp->get_tx_stream(stream_args); // Start the USRP B210 stream rx_stream->issue_stream_cmd(uhd::stream_cmd_t::STREAM_MODE_START_CONTINUOUS); tx_stream->issue_stream_cmd(uhd::stream_cmd_t::STREAM_MODE_START_CONTINUOUS); ``` 这些代码段的结合使用将启用USRP B210的PPS同步。当两个USRP B210相互连接且正确配置时,它们将使用PPS信号同步它们的时钟。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值