C/C++
文章平均质量分 87
Ctrlturtle
电子科大硕士毕业, 目前工作方向为移动端机器学习应用, 业余爱好UE4独立游戏开发;
主力语言C/C++/Python,涉及Android,机器学习,游戏引擎
展开
-
[转载] 如何学习大型项目的源码
最近有朋友突然问我一个问题 “你怎么把UE4引擎代码看的那么深入的?” 看到问题后我还愣了一下,因为这是第一次有人给我打了个”深入UE4”的标签。其实我接触虚幻引擎满打满算也就两年,确实谈不上深入。只是靠着平时的学习习惯积累,写了一些相关的技术文章。 但这个事却让我突然意识到最容...转载 2021-02-08 10:10:16 · 294 阅读 · 0 评论 -
华为机试在线训练-牛客网(25)四则运算
题目描述请实现如下接口 /* 功能:四则运算 * 输入:strExpression:字符串格式的算术表达式,如: "3+2*{1+2*[-4/(8-6)+7]}" * 返回:算术表达式的计算结果 */ public static int calculate(String strExpression)原创 2017-02-15 17:37:28 · 1549 阅读 · 0 评论 -
华为机试在线训练-牛客网(37)计算字符相似度
题目描述对于不同的字符串,我们希望能有办法判断相似程度,我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法如下:1 修改一个字符,如把“a”替换为“b”。2 增加一个字符,如把“abdd”变为“aebdd”。3 删除一个字符,如把“travelling”变为“traveling”。比如,对于“abcdefg”和“abcdef”两个字符串原创 2017-02-23 15:24:05 · 619 阅读 · 0 评论 -
STL容器的遍历插入或删除(迭代器失效问题的统一解决)
STL容器根据迭代器的失效问题,其实可以分为两类容器:(1)数组型容器的插入删除操作:vector、string、deque(均为顺序存储) 由于这类容器的插入或删除都会使所有迭代器失效,因此每次插入删除后都需要重新定位(2)结点型数据容器的插入删除操作:list(使用链表存储)、map(使用红黑树存储)、set(使用红黑树存储) 由于这类容器删除时只会原创 2017-02-14 16:42:49 · 4597 阅读 · 3 评论 -
华为机试在线训练-牛客网(36)火车进站
题目描述给定一个正整数N代表火车数量,0输入描述:有多组测试用例,每一组第一行输入一个正整数N(0输出描述:输出以字典序从小到大排序的火车出站序列号,每个编号以空格隔开,每个输出序列换行,具体见sample。输入例子:31 2 3输出例子:1 2 31 3 22 1 32 3 13 2 1两个字:好题原创 2017-02-22 16:37:46 · 1701 阅读 · 0 评论 -
华为机试在线训练-牛客网(35)公共子串计算
题目描述题目标题:计算两个字符串的最大公共字串的长度,字符不区分大小写详细描述:接口说明原型:int getCommonStrLength(char * pFirstStr, char * pSecondStr);输入参数: char * pFirstStr //第一个字符串 char * pSecondS原创 2017-02-22 12:49:17 · 510 阅读 · 0 评论 -
strtol()、ltoa()与sprintf()---刷题必备
1.strtol()定义函数: long int strtol(const char *nptr, char **endptr, int base)函数说明: strtol()会将参数nptr字符串根据参数base来转换成长整型数。参数base范围从2至36,或0。参数base代表采用的进制方式,如base值为10则采用10进制(字符串以10进制表示),若base值为16则采用16进制(字原创 2017-01-24 15:06:48 · 1991 阅读 · 0 评论 -
华为机试在线训练-牛客网(8)句子逆序
题目描述将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符接口说明/** * 反转句子 * * @param sentence 原句子 * @return 反转后的句子 */public String reverse(S原创 2017-01-24 14:29:45 · 532 阅读 · 0 评论 -
华为机试在线训练-牛客网(1)明明的随机数
题目描述明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。 Input Param原创 2017-01-17 18:53:01 · 747 阅读 · 0 评论 -
华为机试在线训练-牛客网(7)字符个数统计
题目描述编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。输入描述:输入N个字符,字符在ACSII码范围内。输出描述:输出范围在(0~127)字符的个数。输入例子:abc输出例子:3此题要统计字符个数,统计其实就是去重的过程,因此使用STL的set无疑最快的原创 2017-01-23 22:18:02 · 637 阅读 · 0 评论 -
华为机试在线训练-牛客网(6)提取不重复的整数
题目描述输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。输入描述:输入一个int型整数输出描述:按照从右向左的阅读顺序,返回一个不含重复数字的新的整数输入例子:9876673输出例子:37689作为机试题追求方便,尽量使用STL库来解决,因此我的思路如下:此题主要是反转和去重两个问题原创 2017-01-23 22:11:29 · 510 阅读 · 0 评论 -
华为机试在线训练-牛客网(5)合并表记录
题目描述数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。输入描述:先输入键值对的个数然后输入成对的index和value值,以空格隔开输出描述:输出合并后的键值对(多行)输入例子:40 10 21 23 4输出例子:0 31 23 4原创 2017-01-23 18:41:05 · 336 阅读 · 0 评论 -
华为机试在线训练-牛客网(41)字符串分割
本篇应该是牛客华为机试专题的最后一篇,回顾一下,牛客上的华为专题总计108题,除去重复题,除去几道bug题,到此为止共记录41道自己认为比较重要的题,欢迎讨论。有些题还有更好的解法,后续再更新。题目描述连续输入字符串(输出次数为N,字符串长度小于100),请按长度为8拆分每个字符串后输出到新的字符串数组,长度不是8整数倍的字符串请在后面补数字0,空字符串不处原创 2017-03-01 21:59:34 · 1033 阅读 · 0 评论 -
华为机试在线训练-牛客网(10)坐标移动
题目描述开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。 输入: 合法坐标为A(或者D或者W或者S) + 数字(两位以内) 坐标之间以;分隔。 非法坐标点需要进行丢弃。如AA10; A1A;原创 2017-02-03 13:52:47 · 918 阅读 · 0 评论 -
华为机试在线训练-牛客网(11)识别有效IP地址和掩码并分类统计
题目描述请解析IP地址和对应的掩码,进行分类识别。要求按照A/B/C/D/E类地址归类,不合法的地址和掩码单独归类。所有的IP地址划分为 A,B,C,D,E五类A类地址1.0.0.0~126.255.255.255;B类地址128.0.0.0~191.255.255.255;C类地址192.0.0.0~22原创 2017-02-03 18:14:37 · 1131 阅读 · 0 评论 -
华为机试在线训练-牛客网(20)【中级】字符串运用-密码截取
题目描述Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。比如进行下列变化 ABBA->12ABBA,ABA->ABAKK,123321->51233214 。因为截获的串太长了,而且存在多种可能的情况(abaaab可看作是aba,或baaab的加密形原创 2017-02-09 21:37:32 · 1171 阅读 · 0 评论 -
C/C++重难点总结系列(一)
1.关于程序的内存区域(1)代码区:存放程序的二进制代码。(2)全局区:存放全局数据和静态数据,编译器编译时即分配内存。全局变量和静态变量的存储是放在一块的。对于C语言初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。而C++则没有这个区别,程序结束后由系统释放。(3)文字常量区 :常量字符串就是放在这里的。 程序结束后由系统释放。原创 2016-10-03 10:20:28 · 11194 阅读 · 0 评论 -
【转】STL常用算法
#include 算法常用版本描述返回Typestd::find()find(_InIt _Fisrt,_InIt _Last,_Ty& _Val);从两个迭代器指定的范围中查找指定值引用被查找的值的iterator或end()转载 2017-02-09 14:29:55 · 412 阅读 · 0 评论 -
【转】TCP为什么需要三次握手?
原文链接:http://blog.csdn.net/worldwindjp/article/details/17554785tcp为什么要第三次握手,time_wait是做什么的? tcp有几种状态,画出所有的状态转换图。 晚上看到的面试题,TCP三次握手的印象很深,但为什么需要3次握手,还是想不起来了。简单而言:如果不是三次握手的话,那么到底需要几次握手最转载 2017-05-05 22:18:47 · 483 阅读 · 0 评论 -
C++简单实现几种常用的设计模式
本文介绍几种常用的设计模式并给出C++实现。1.单例模式作用:保证一个类只有一个实例,并提供一个访问它的全局访问点,使得系统中只有唯一的一个对象实例。应用:常用于管理资源,如日志、线程池实现要点:在类中,要构造一个实例,就必须调用类的构造函数,并且为了保证全局只有一个实例,需防止在外部调用类的构造函数而构造实例,需要将构造函数的访问权限标记为private,原创 2017-05-07 22:03:31 · 9983 阅读 · 2 评论 -
C/C++重难点总结系列(五)
41.C++文件流操作多态性:fstream继承自iostream,ifstream继承自istream,ofstream继承自ostream,因此参数为iostream的引用/指针的可以直接传入fstream的实参。操作步骤:创建文件流,打开文件,读写文件,关闭文件。操作示例: char data[100]; // 以写模式打开文件 ofstream outfil原创 2017-05-05 21:59:56 · 1539 阅读 · 0 评论 -
C++智能指针原理分析与简单实现
一个简单智能指针实现的思路如下: 智能指针,简单来讲是使用引用计数的方法,来跟踪监控指针。当引用计数为0时就delete 所跟踪的目标指针,释放内存 智能指针将一个指针封装到一个类中,当调用智能指针的拷贝构造函数时,将引用计数+1(因为新创建的智能指针也引用了目标指针) 重载智能指针的赋值操作符,等号左边的对象引用计数-1,右边的对象引用计数+1,右边的目标指针和引用计数赋值给左原创 2017-05-05 20:09:03 · 694 阅读 · 0 评论 -
关于OJ上STL库使用的一点经验记录
1.关于去重与排序问题一般性方法:sort()+unique()+erase(). 这三种泛型算法组合可以解决去重和排序的绝大多数问题,第一个排序算法根据容器自动选择排序算法进行排序,后两者结合起来可以实现去重。需要注意的是:unique和remove/remove_if类似,不是真正的去重(删掉重复的元素),而是将重复的元素移到容器的末尾,并返回第一个重复元素的位置(迭代器),然后再利原创 2017-02-14 16:01:32 · 1565 阅读 · 0 评论 -
华为机试在线训练-牛客网(39)记票统计
题目描述请实现接口:unsigned int AddCandidate (char* pCandidateName);功能:设置候选人姓名输入: char* pCandidateName 候选人姓名输出:无返回:输入值非法返回0,已经添加过返回0 ,添加成功返回1 Void Vote(char* pCandidateName);功能:投票原创 2017-02-26 18:16:29 · 864 阅读 · 0 评论 -
华为机试在线训练-牛客网(38)在字符串中找出连续最长的数字串
题目描述样例输出输出123058789,函数返回值9输出54761,函数返回值5 接口说明函数原型: unsignedint Continumax(char** pOutputstr, char* intputstr)输入参数: char* intputstr 输入字符串;输出参数: char**原创 2017-02-26 14:36:08 · 1649 阅读 · 0 评论 -
【转】STL算法-排序
以下内容转载自:http://blog.csdn.net/bz201/article/details/543001关于STL排序算法有非常详细的总结,总结全文,你熟悉的快排/堆排/归并排序在STL其实都有应用:(1)全排序sort():底层为成熟的快排(主要为快排,结合一些其他排序算法优化)(2)稳定排序stable_sort():底层为归并排序(稳定性在有些场合非常重要,请看我的一篇转载 2017-02-24 21:37:46 · 380 阅读 · 0 评论 -
【转】STL算法-合并(集合)
以下内容转载自:http://www.cppblog.com/zhangyq/archive/2012/02/05/164060.html对于STL合并相关算法有非常详细的总结,其中有几个大名鼎鼎的集合算法,它们是:(1)求交集:set_intersection()(2)求并集:set_union()(3)求差集:set_difference()--------转载 2017-02-24 21:45:28 · 2836 阅读 · 0 评论 -
华为机试在线训练-牛客网(9)求int整数在内存中1的个数
题目描述输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。输入描述: 输入一个整数(int类型)输出描述: 这个数转换成2进制后,输出1的个数输入例子:5输出例子:2数字在内存中 ,被转化为二进制。例如7表示为0111n&(n-1) 即(0111)&(0110)== 011原创 2017-01-24 15:55:21 · 361 阅读 · 0 评论 -
华为机试在线训练-牛客网(34)参数解析
题目描述在命令行输入如下命令:xcopy /s c:\ d:\,各个参数如下: 参数1:命令字xcopy 参数2:字符串/s参数3:字符串c:\参数4: 字符串d:\请编写一个参数解析程序,实现将命令行各个参数解析出来。 解析规则: 1.参数分隔符为空格 2.对于用“”包含起来的参数,如果中间有空格,不原创 2017-02-21 13:37:36 · 653 阅读 · 0 评论 -
华为机试在线训练-牛客网(32)成绩排序
题目描述查找和排序题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩 都按先录入排列在前的规则处理。 例示: jack 70 peter 96 Tom 70 smith 67 从高到低 成绩 peter原创 2017-02-20 14:24:55 · 1634 阅读 · 0 评论 -
华为机试在线训练-牛客网(24)迷宫问题
题目描述定义一个二维数组N*M(其中2int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0,};原创 2017-02-12 21:15:53 · 860 阅读 · 0 评论 -
C/C++重难点总结系列(二)
11.关于const 指针(1)常量指针(指向常量的指针:底层const) 如:const int *pi=&a; 此处const限制的是指针pi解引用操作,即*pi不能修改,但pi自身可以修改。同时,const对*p的限定不会影响到所指向的值的变更。如果指向的a不是const int a,则直接对a修改仍然是可以的,只是不能通过解引用来修改a。(初学者最难理解的地方)(原创 2016-10-03 12:11:42 · 1863 阅读 · 0 评论 -
【转】C++工程师面试笔记
转自牛客网一位同学的C++笔记,包括C++基础、数据结构与算法、计算机基础等,耐心看完一遍后感觉非常经典,决定转摘过来以便查阅。链接:https://www.nowcoder.com/discuss/18270来源:牛客网数据库:范式第一范式:数据库表的每一项都是不可分割的原子数据项,不能是集合。比如班级信息表里面不能有班级的学生。第二范式:在第一范式的基础上,转载 2017-02-27 22:27:18 · 711 阅读 · 0 评论 -
华为机试在线训练-牛客网(4)质数因子
题目描述功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )最后一个数后面也要有空格详细描述:函数接口说明:public String getResult(long ulDataInput)输入参数:long ulDataInput:输入的正整数返回值:Stri原创 2017-01-19 22:56:03 · 329 阅读 · 0 评论 -
华为机试在线训练-牛客网(27)无线OSS-高精度整数加法
题目描述在计算机中,由于处理器位宽限制,只能处理有限精度的十进制整数加减法,比如在32位宽处理器计算机中,参与运算的操作数和结果必须在-231~231-1之间。如果需要进行更大范围的十进制整数加法,需要使用特殊的方式实现,比如使用字符串保存操作数和结果,采取逐位运算的方式。如下:9876543210 + 1234567890 = ?让字符串 num1="98765432原创 2017-02-17 15:47:31 · 814 阅读 · 1 评论 -
华为机试在线训练-牛客网(17)查找兄弟单词
题目描述输入描述:先输入字典中单词的个数,再输入n个单词作为字典单词。输入一个单词,查找其在字典中兄弟单词的个数再输入数字n输出描述:根据输入,输出查找到的兄弟单词的个数输入例子:3 abc bca cab abc 1输出例子:2 bca这个题目的问题描述让人很是糊涂。正确的描述应该是这样的:输入描述:原创 2017-02-08 22:46:27 · 913 阅读 · 0 评论 -
华为机试在线训练-牛客网(16)字符串排序
题目描述编写一个程序,将输入字符串中的字符按如下规则排序。规则1:英文字母从A到Z排列,不区分大小写。 如,输入:Type 输出:epTy规则2:同一个英文字母的大小写同时存在时,按照输入顺序排列。 如,输入:BabA 输出:aABb规则3:非英文字母的其它字符保持原来的位置。 如,输入:By?e 输出:Be?y原创 2017-02-08 20:59:57 · 1120 阅读 · 0 评论 -
华为机试在线训练-牛客网(15)数据分类处理
题目描述信息社会,有海量的数据需要分析处理,比如公安局分析身份证号码、QQ用户、手机号码、银行帐号等信息及活动记录。 采集输入大数据和分类规则,通过大数据分类处理程序,将大数据分类输出。输入描述:一组输入整数序列I和一组规则整数序列R,I和R序列的第一个整数为序列的个数(个数不包含第一个整数);整数范围为0~0xFFFFFFFF,序列个数不限输原创 2017-02-08 18:35:41 · 1428 阅读 · 1 评论 -
华为机试在线训练-牛客网(26)输出单向链表中倒数第k个结点
题目描述输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第1个结点为链表的尾指针。链表结点定义如下:struct ListNode{ int m_nKey; ListNode* m_pNext;};详细描述:接口说明原型:ListNode* FindKthToTail原创 2017-02-16 15:40:49 · 642 阅读 · 0 评论 -
华为机试在线训练-牛客网(14)删除字符串中出现次数最少的字符
题目描述实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。输入描述:字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。输出描述:删除字符串中出现次数最少的字符后的字符串。输入例子:abcdd输出例子:dd此题可原创 2017-02-05 21:32:29 · 407 阅读 · 0 评论