C++算法
以默
这个作者很懒,什么都没留下…
展开
-
虚函数和纯虚函数区别
虚函数的意义,就在于定义了一个从最早的父类,到最后的子类,都必须具备的一个功能(函数),只是在不断的进化(继承)中,这个功能会略微发生改变。通过虚函数,我们在调用不同的衍生类的时候,可以拥有不同的功能。在大一点的项目中,由于类中的函数成百上千,恐怕你就会为此疯狂。如果说虚函数还可以用重命名作为另外一种解决方法,那么纯虚函数则是没有第二种可以替代的方法。拿一个非常简单的代码说明一下:class test{ public: virtual void print(); virtual void orde原创 2021-03-24 22:46:04 · 163 阅读 · 0 评论 -
map迭代器删除后会出现什么
(1)对于关联容器(如map,set,multimap,multiset),删除当前的iterator,仅仅会使当前的iterator失效,只要在erase时,递增当前的iterator即可。这是因为map之类的容器,使用了红黑树来实现,插入,删除一个结点不会对其他结点造成影响。使用方式如下例子:set<int> valset = { 1,2,3,4,5,6 };set<int>::iterator iter;for (iter = valset.begin(); iter !原创 2021-03-17 13:35:14 · 689 阅读 · 0 评论 -
最长和谐子序列
和谐数组是指一个数组里元素的最大值和最小值之间的差别 正好是 1 。现在,给你一个整数数组 nums ,请你在所有可能的子序列中找到最长的和谐子序列的长度。数组的子序列是一个由数组派生出来的序列,它可以通过删除一些元素或不删除元素、且不改变其余元素的顺序而得到。示例 1:输入:nums = [1,3,2,2,5,2,3,7]输出:5解释:最长的和谐子序列是 [3,2,2,2,3]示例 2:输入:nums = [1,2,3,4]输出:2示例 3:输入:nums = [1,1,1,1]输原创 2021-03-16 22:46:05 · 596 阅读 · 0 评论 -
罗马数字计算
字符串命名转换孔乙己说“回”字有四种写法,编程语言中常见的命名风格有如下四种:全部首字母大写第一个单词首字母小写,其余单词首字母大写单词全部小写,由下划线连接单词全部小写,由减号连接请设计并实现一个caseTransform函数,使得一个字符串str可以被方便地转成四种形式,并且将四种形式通过空格拼接成一个字符串返回为方便起见,这里假设输入字符串全部符合以上四种形式的英文字母组合思路:使用map对各个符号标记,通过循环遍历,同时判断IV,IX,XL等类型是否在其中。若有计数加入k后跳过原创 2021-03-16 22:26:58 · 415 阅读 · 0 评论 -
骑士的金币
国王用金币赏赐忠于他的骑士。骑士在就职的第一天获得一枚金币。接下来的两天(第二天和第三天)每天获得两枚金币、接下来的第三天(第四、五、六天)每天获得三枚金币。接下来的四天(第七、8、九、十天)每天获得四枚金币。这样的赏赐形式一直延续:即连续N天骑士每天都获得N枚金币后,连续N+1天每天都将获得N+1枚金币,其中N为任一正整数。编写一个程序,对给定的天数计算出骑士获得的金币总数(从任职的第一天开始)。# include <iostream>using namespace std;int m原创 2021-03-16 22:35:05 · 1455 阅读 · 0 评论