C/C++
君浪
君子不器 浪子不羁
展开
-
单词排序——一道招聘笔试题
正文前几天参加一家公司的实习招聘,笔试中有一道题,是让对单词按字母进行排序。 单词结构体类似如下,其中word中的字符均在小写字母a~z范围内:struct words{ string word; word*next; ...};这是链表结构。 对链表的排序,如果是原址排序,一般复杂度都是O(n2)O(n^2) 对于链表中的关键字——string类型的str,如果进行原创 2016-03-15 22:02:23 · 948 阅读 · 0 评论 -
MFC:模态与非模态对话框
昨天用单文档做了一个简易的编辑器,可以编辑代码。今天跟进一步,把之前写的翻译器移植进来。 一开始抱着只要读懂代码就能知道怎么写的想法去尝试,结果浪费了一下午的时间,死磕各种BUG,其中一个BUG困扰时间最长:我通过类向导建立的对话框类(继承自CDialog),然后在别的类中使用这个类创建对象,总是出现莫名其妙的错误(提示缺少;的语法错误),怎么都查不出来。后来只好屈服,去搜了教程来看。原创 2017-04-06 21:28:25 · 531 阅读 · 0 评论 -
MFC初探:单文档打开文件并载入窗口
上次做了一个简单的数控编译程序,想要改成窗口程序。在很久之前用过MFC的对话框做过程序,准备重新捡起来。 这里选择了单文档,挑战一下没用过的部分。 后面类继承选择了继承自CEditView,是为了更方便在窗口中输入文字。(https://zhidao.baidu.com/question/245604097.html) 然后就生成了一个简单的文本输入程序,但存在一点瑕疵:输入文字保存没问题原创 2017-04-05 23:06:36 · 7096 阅读 · 0 评论 -
c++:使用function模板和bind函数
function< T >fuction是c++11标准库中的类模板,可以实现函数对象在函数参数中的传递调用。 声明格式如下:function<retType(args)> f;其中retType和args分别为定义的函数的返回类型和参数类型,它可以用函数对象类的对象、函数指针以及lambda函数来定义:原创 2017-04-13 22:01:56 · 2148 阅读 · 1 评论 -
二值形态学基本操作:腐蚀、膨胀、开运算、闭运算
用在图像处理中的一些基本操作。原创 2017-03-26 08:11:19 · 11865 阅读 · 1 评论 -
做一个学(chou)习(ka)游戏(一)
嗯,抽卡是坏文明。但不得不承认这种形式的设计确实是抓住了人性。就像斯金纳箱中的小老鼠一样。 所以不能被这种心理利用,而要利用这种心理来学习。因此决定模仿抽卡类游戏做一个用以读书的游戏。写代码前,首先设计游戏大致的整体结构: 游戏的主旋律是这样的: 获得卡(概率性、稀有度)->强化卡(加深与该卡的羁绊、获得提升感)->完成任务(获得成就感)->获得抽卡道具(奖励系统)->获得卡(进入循环) 其原创 2017-03-31 23:05:05 · 537 阅读 · 1 评论 -
MFC:CSplitterWnd和CEditView的使用
昨天创建了一个基本的窗口,实现了呼出对话框汇报翻译情况。但翻译结果不能放在呼出的对话框中,需要建立一个和编辑区平行的区域。这里就要用到CSplitterWnd类。 CSplitterWnd可以实现对客户区的分割(单文档下),实现流程如下:原创 2017-04-07 20:02:46 · 2170 阅读 · 0 评论 -
const修饰的函数
今天笔试遇到一道选择题,大致如下:class A{ int b;public: void func()const{ cout << "a" << endl; } void func(){ cout << "b" << endl; }};则A a; a.func();的结果是什么?a b 还是报错?我只记得const修饰的函数,可以禁止修改成员函数,也就是说,成员原创 2016-04-21 21:46:41 · 558 阅读 · 0 评论 -
华为的三道笔试OJ题
今天下午参加了华为实习生招聘的上机考试,一共有三道题目,都很简单,然而考得实在不理想,由于每道题只能提交三次,最后只正确了一道题目。下面是题目和代码(凭记忆写的 仅供参考)1. EXCEL的表格编号问题题目简述:EXCEL每一列都有一个字母编号,如a b c..aa ab..代表着编号1 2 3..27,如何把字母编号转成数字?输入:字符串 如aa(使用小写字母)输出:数字 如原创 2016-03-27 18:12:18 · 2630 阅读 · 1 评论 -
LeetCode笔记:Move Zeros[Difficulty: Easy]
原题:Given an array nums, write a function to move all 0's to the end of it while maintaining the relative order of the non-zero elements.For example, given nums = [0, 1, 0, 3, 12], after ca原创 2016-03-04 21:27:24 · 459 阅读 · 0 评论 -
错误:“LNK1169找到一个或者多个重定义的符号”
今天自己写了一个头文件,然后依照书上推荐的“声明和实现分离”方法,把类的成员函数写在头文件和head1.h里,然后把实现写在c1.cpp文件里。class CXX{public:static int k;};在类中,我声明了一个静态变量。开始怎么也无法使用,发生错误:LNK2001 无法解析的外部符号……后来查资料才知道,是使用静态变量方法不对,使用静态变量必须在外部原创 2016-03-21 21:56:19 · 1191 阅读 · 0 评论 -
工厂、单例、宏
最近看了设计模式的书,看了一部分忍住没有继续看,因为觉得前面的部分需要好好消化。消化的方法就是写代码,实现,但是一直没有有意思且能体现出设计模式的项目。前几天,在作笔记的时候,萌生了一个点子:如果我写纯文本的时候,想引用别的笔记、或者插入一张图片怎么做?确实有很多方便的软件可以插入,并且实时显示,但作为一个程序员,比较喜欢纯文本的编辑方式。想了一会儿,觉得这就类似于latex,当然我没那本原创 2016-04-01 19:09:52 · 495 阅读 · 0 评论 -
二叉搜索树的一种构造方法
二叉搜索树,也叫二叉查询树,它的优势,顾名思义,就在于查询。一般在链表或者向量中查询一个元素,需要O(n)O(n) 的时间复杂度,而对于搜索二叉树,最好情况可以仅用O(lgn)O(lgn) 的复杂度。因此它善于大量数据的检索。 二叉搜索树与一般的二叉树不同在于它的元素分布,有如下特点: 对于每个结点,左子树(如果存在)的关键字大小小于该节点的关键字,右子树(如果存在)的关键字大于该结点的关键字原创 2016-03-16 22:23:35 · 3930 阅读 · 1 评论 -
提防向量迭代器变成野指针
今天在使用向量的时候,遇到了这样一个问题。使用一个int向量迭代器指向向量的头,然后不断读入数据,最后再使用迭代器遍历向量。代码简化如下:vector p;vector::iterator ptr = p.begin();int num;while(cin>>num)p.push(num);cout但是却出现了Debug Assertion Failed! 的错误。迭代器的引用原创 2016-03-17 21:29:35 · 706 阅读 · 0 评论 -
C++:xutility文件中发生错误
在写程序中途测试时,突然多出一堆语法错误,且来源于xutility文件。 打开xutility文件,其中定义了许多结构体以及函数模板。在其中找错误源是找不到的,因为全是类似于缺少;之类的错误。于是回退之前写的代码,终于发现问题所在。原创 2017-04-23 20:11:35 · 8340 阅读 · 0 评论