[每日学习3.26/3.27] 游戏研发面经学习 - 阿V
1. map中[]跟inserC++)
下标[]方法:若插入元素的键值存在于map中,则更新map对应的value值。若不存在,则创建键值为插入元素的键值的元素,再将插入元素的值赋值给新建元素的值。
insert()方法:若插入元素的键值存在于map中,则插入失败。若不存在,直接将新元素加入到map中。
2. 如何避免头文件重复包含(C++)
头文件重复包含会出现问题:符号(函数、变量、类等)的重定义。
解决办法:
1.
#ifndef _HEADERNAME_H
#define _HEADERNAME_H
//头文件内容
#endif
通过宏定义,当头文件再次被包含,通过条件编译从而忽略内容,但仍然将整个头文件读入,降低编译速度。可移植性高。
2. #pragma once
区别与宏定义处理,该方法不会重复打开相同头文件,编译速度更快。
3. 拥塞控制和流量控制区别(计算机网络)
流量控制解决的是发送方和接收方速率不匹配的问题。
拥塞控制解决的是避免网络资源被耗尽的问题。
4. TCP流量控制(计算机网络)
流量控制:防止发送方与接收方速率不匹配,可能导致数据丢失。
实现原理:
1. 发送方解析接收方的响应数据包,根据接收方的接收窗口大小调整自己的发送窗口大小,发送窗口内的数据。
2. 发送方通过向前滑动发送窗口的方式移除已确认被正确接收的数据,并将他们从缓存区删除。
5. TCP的TIME_WAIT状态为什么要等待2MSL的时长(计算机网络)
MSL,Maximum Segment Lifetime,最大报文段生存时间。即任何TCP报文在网络中存在的最大时长,如果超过这个时间,这个TCP报文就会被丢弃。
因为客户端不知道服务端是否能收到ACK应答数据包,服务端如果没有收到ACK,会进行重传FIN,考虑最坏的一种情况:第四次挥手的ACK包的最大生存时长(MSL)+服务端重传的FIN包的最大生存时长(MSL)=2MSL
6. 内存管理(C++)
分配方式:
1. 栈:分配给函数局部变量等数据,函数结束时自动释放。由于内置处理器指令集中,效率高,但内存容量有限。
2. 堆:malloc分配内存,由程序员手动free。
3. 自由存储区:用new分配内存,由程序员手动delete。
4. 全局/静态存储区:分配给全局变量和静态变量。
5. 常量存储区:分配给常量。
7. 堆和栈的区别(C++)
区别:
1、管理方式不同:栈是由编译器自动管理,无需我们手工控制;堆释放工作由程序员控制。
2、空间大小不同:默认的栈空间大小是1M,在32位系统下,堆内存可以达到4G的空间,
3、能否产生碎片不同:栈不会产生碎片,堆会产生碎片。
4、生长方向不同:堆生长方向是向上的,向着内存地址增加的方向;栈的生长方向是向下的,向着内存地址减小的方向增长。
5、分配方式不同:栈有2种分配方式:静态分配和动态分配。静态分配是编译器完成的,比如局部变量的分配、动态分配由alloca函数进行分配。堆都是动态分配。
6、分配效率不同:栈效率高,堆效率低。
8. vector迭代器什么时候会失效?(C++)
1. push_back导致迭代器失效 :扩容重新申请内存,导致原本的迭代器失效。
2. insert导致迭代器失效:扩容重新申请内存,导致原本的迭代器失效。
3. 删除操作导致迭代器失效:原本迭代器地址改变或删除。
9. inliine函数可以虚函数码?(C++)
inline函数没有地址,无法将他存放到虚函数表中。
10. 静态成员可以是虚函数吗?(C++)
静态成员函数中没有this指针,无法放进虚函数表里面。
11. 联合体、结构体、类的区别(C++)
1. 结构体:一种数据结构,一些元素的集合。
2. 联合体:使用覆盖技术,几个变量互相覆盖。
3. 类:结构体升级版,含有数据成员和方法。
类与结构体区别:
1. 结构体不存在任何函数,包括构造函数和析构函数,而且是一个公共的类。
2. 结构体默认成员是public,类默认成员是private。
3. 结构体继承默认public,类继承默认private。
联合体和结构体的区别:
1. 占用内存大小不同:结构体里每个数据类型都有独立地址空间,通过内存对齐的方式,占有空间大小,联合体所有数据类型共同占用最大数据类型的地址空间。
2. 同一时刻,结构体所有成员都存在,联合体只存在一个成员。
12. extern “C” (C/C++)
实现C和C++混合编程。由于 C++ 和 C 在程序的编译、链接等方面都存在一定的差异,而这些差异往往会导致程序运行失败。
13. 指针和数组的区别(C/C++)
数组:数组是用于储存多个相同类型数据的集合。
指针:指针相当于一个变量,但是它和不同变量不一样,它存放的是其它变量在内存中的地址。
区别:
1. 赋值:同类型指针变量可以相互赋值,数组只能一个一个元素赋值。
2. 存储:指针就是一个变量,数组在内存中是连续存放,通过数组下标进行访问。
14. 构造和析构函数调用顺序 (C/C++)
构造函数的调用顺序 :
基类构造函数、对象成员构造函数、派生类本身的构造函数 。
析构函数的调用顺序:
派生类本身的析构函数、对象成员析构函数、基类析构函数(与构造顺序正好相反) 。
15. DFS和BFS
[每日学习3.26/3.27] 游戏研发面经学习 - 阿V相关推荐
- android 学习笔记(三) Android学习路线之3.2 游戏程序员的学习资料
看到一篇文章,总结一个游戏程序员的学习资料,作者是一个大二的学生,很羡慕作者大二时就有这么清晰的职业目标.我大学学的是自动化专业,大学时也算博览群书,可惜现在大多不知道遗忘在那个角落了.毕业后,单片机 ...
- 视频教程-《2048》-UGUI搞定2D游戏研发-Unity3D
<2048>-UGUI搞定2D游戏研发 北交点教育创始人 毕业于中国人民大学 九年工作经验 担任多款游戏主程序 精通Unity,UE4等常用游戏引擎 参与过故宫,国博等国家级VR项目的研发 ...
- android开发学习之路——连连看之游戏逻辑(五)
GameService组件则是整个游戏逻辑实现的核心,而且GameService是一个可以复用的业务逻辑类. (一)定义GameService组件接口 根据前面程序对GameService组件的依赖, ...
- 10月26~27日敏捷圈清明上河图
今年,敏捷宣言诞生已经十八年了,敏捷社区活动在中国也已超过十年.现在,敏捷活动在全国已覆盖约三十个城市,每年的活动场次约三百场,连接全国三千名敏捷爱好者. 这两天,10月26-27日,敏捷活动呈现了一 ...
- 网易互娱2018校招游戏研发工程师在线笔试
如果题目版权限制,不能发表该题解,请私信,我会立刻删除博客. 题目描述 注意:本题只允许使用C/C++或Java进行解答,其他编程语言提交均视作无效处理. 小W有一个电子时钟用于显示时间,显示的格式为 ...
- 游戏研发的黄金年代真的来了吗?
本文转载自 游戏葡萄,作者 依光流 游戏行业的硝烟味变浓了. 去年中旬,游戏投资市场燥热.根据统计,2020年内共发生至少103起针对国内游戏相关企业的投融资案例(含拟投资案例),单笔金额从数百万到十 ...
- 一个游戏程序员的学习资料[转]
http://software.intel.com/zh-cn/blogs/2012/03/20/400010004/?cid=sw:prccsdn2194 一个游戏程序员的学习资料 作者: weiq ...
- 游戏研发运营工作介绍【esyi杂谈】
游戏研发运营工作介绍[esyi杂谈] 概要 一.游戏阶段 1.研发阶段 2.封测阶段 3.内测阶段 4.公测阶段 大版本迭代 二.运营系统 1.后台管理 2.营销系统 3.活动系统 4.其它系统 三. ...
- 游戏研发运营工作介绍【游戏运营】
概要 Q:游戏运营做什么? A:游戏运营主要目的是通过一系列方法,使玩家了解游戏.入驻游戏并为游戏付费. 在整个游戏生命周期里,游戏运营需要做: 充分理解要运营的游戏. 根据自身职责,根据游戏项目所处 ...
- 游戏中应用强化学习技术,目的就是要打败人类玩家?
来源:AI前线 作者:凌敏 采访嘉宾:黄鸿波 2016 年,DeepMind 公司开发的 AlphaGo 4:1 大胜韩国著名棋手李世石,成为第一个战胜围棋世界冠军的人工智能机器人,一时风头无两.Al ...
最新文章
- Linux期末复习题库(3)
- Javascript 两种 function 定义的区别
- 2.5 使用scriptfiles
- Visual Studio Online 东半球首秀,亮相 .NET Conf 2019 中国峰会
- u boot 驱动完成
- pandas将series所有值转变为字符串类型
- STM8单片机通过PWM触发ADC同步采样
- Python中stack(),vstack(),hstack()的用法和区别
- 对“xxx”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。...
- 删库跑路是程序员最后的倔强?
- mysql高可用架构_MySQL高可用架构对比
- java购物车界面的代码,JavaBean购物车全代码
- lammps数据后处理:Python Ovito CNA结构统计输出
- python步态识别算法_深度学习在步态识别中的应用
- 信用卡欺诈检测:2021 年顶级机器学习解决方案
- 房价,经济转型,技术创新
- ue4掉落深渊返回地面
- 使用函数节流思想避免 SAP UI5 应用里按钮短时间内被高频重复点击试读版
- 【新手上路常见问答】关于自然语言处理(NLP)
- Android-Universal-Image-Loader三大组件DisplayImageOptions、ImageLoader、ImageLoaderConfiguration详解
热门文章
- 小说阅读,原生小说APP源码出售,可二次开发 四端互通:android端,ios端,h5端,公众号端
- 数据结构与算法之python
- 几个可以免费下载视频素材的网站[国外],希望大家喜欢[可以的话给个关注哟]
- windows双开微信多开微信
- oracle imp命令参数,oracle EXP/IMP 命令参数
- 服务器中的虚拟化是什么意思,虚拟化是什么意思
- 【信号隐藏】基于lsb算法实现音频水印嵌入提取matlab代码
- 【MODIS数据处理#10】例五:用NDVI估算植被覆盖度
- Chrome恐龙小游戏“开挂“跑分
- declares(declares是什么意思)