C++怪咖面试录_20190320

  网络篇

   咖问:如何区分协议头信息和正文信息:

   咖问:哎http很熟悉呀?来,如何区分协议头信息和正文信息?

   倒霉蛋:额···没怎么注意呀   

                   时隔N天后查阅到: /r/n/r/n

                   好吧,貌似抓包的时候有看到这个,哎没多想呀,还会有这种问题,奇葩

 

   咖问:get和post有区别吗?post是数据安全的吗?http怎么保证安全哩?

   倒霉蛋:区别呀~~~

              于服务端,get是请求服务器数据,post是上传给服务器数据

   咖说:额好吧这个差不多够了。

   倒霉蛋:(嘴长了··话多的后果就是搬起石头砸自己的脚)get好像对数据不加密,它是直接将数据跟在url后面,post是放在form里面的,数据比较安全。

              后来想了想,还是低估程序员的实力了

   摘下知乎有个很有意思的回答: 

    好吧明白了,要想数据安全,要不自己写加密算法,或者用https的方式。

  语言篇

   迭代器失效

   咖问: 呵呵~很熟悉STL,来迭代器失效了解不?

   倒霉蛋:。。。听过这个名词,没注意过着玩意~

   咖说: l.erase(iter++)会不会失效?

   倒霉蛋:额看着好像不会吧~

   于是。。。。。回家了

   好吧确实会失效

   向容器中添加或者删除元素的时候可能会使迭代器失效,失效的迭代器不指向任何元素,像vector使用的是连续分配的内存,删除元素的时候会使得后面的元素向前移动,不过调用erase(iter)时会返回下一个元素的地址,因此需要重新对迭代器赋值操作:

     iter = l.erase(iter);

   迭代器其实也是一种广义指针,指向容器中的数据

   参考链接:https://blog.csdn.net/lujiandong1/article/details/49872763

   函数指针的应用场景

   倒霉蛋:(心里默想)应用场景,额好难啊,妈呀会用倒是,做过的项目中也没怎么用到过,也就玩玩demo而已,这一定是魔鬼问的问题!

  恩 回调函数呀,中断函数呀,按钮点击事件呀,记得有用过connect绑定,感觉都是挺像用到函数指针的。

  咖说:呵呵点击事件,qt吗,那不是信号与槽?

  倒霉蛋:好吧我也是挺倒霉的,大佬,我说的没错呀,信号与槽内部实现是基于回调函数,而回调函数也是基于函数指针的嘛

它只不过是使用发布订阅者模式来实现的,恩有机会得好好看一看信号与槽的原理,这块对设计模式也是有提高的,立个flag

应用场景抱歉笨拙的嘴表达不出来拍手称赞的解释于是挂链接:http://blog.sina.com.cn/s/blog_80d90e6f0101lh6t.html

 

  操作系统篇:

   多线程为什么不能太多?

   倒霉蛋:额~我觉得不能太多是因为创建以及销毁的时候有开销以及cpu在切换的过程中也会开销,所以不能太多

   咖说:恩,基本差不多

   线程也是有成本的,虽然说相对进程来说创建的成本相对小,但还是会分配线程内核对象的,并且会保留1MB的堆栈空间,且单核系统中并向的功能也是依赖于时间片的,频繁的上下文切换也是很耗时的一种操作。

   参考链接:https://blog.csdn.net/happydeer/article/details/52725860

   

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值