![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CPP
文章平均质量分 51
Carry-1
stay hungry, stay foolish.
展开
-
罗马数字转整数(简单)
罗马数字转整数算法:对输入字符串s从前往后遍历,并设置初始值为0的变量sum用于记录转换之后的整数值,sum的值会随着遍历的进行不断发生变化,遍历结束时的sum值即为罗马数字对应的整数值。设立一个map型变量m用于存储罗马字符到整数值的映射。在遍历字符串过程中,对于位置i处的元素,首先判断i+1处是否还有字符,若没有,则直接将位置i处的罗马数字对应的整数加到sum中;若有,还要判断i处罗马数字和i+1处罗马数字组成的罗马数字是否属于六种特殊情况之一,其实只要判断i处罗马数字的映射(整数)是否小于i原创 2021-07-19 16:32:48 · 393 阅读 · 0 评论 -
explicit用法
使用关键字explicit的一条黄金法则是:对于所有只需提供一个参数就能调用的构造函数,除非你想要利用它进行隐式转换,否则一律将该构造函数声明为explicit。 下面来解释以下为什么要这样做: 编译器在调用函数时如果传入实参与函数形参类型不一致时可以采用隐式转换来转换实参类型使其与形参保持一致。这意味着编译器可以使用构造函数(其形参表中只有一个参数)来进行隐式转换以得到正确的参数类型。举个例子://Foo 类有一个可以用于隐式转换的构造函数class Foo {public:原创 2021-05-02 10:10:37 · 575 阅读 · 0 评论 -
函数模板
函数模板和类模板1.函数模板当几个函数函数功能相同,仅仅是参数类型不同时,可以定义函数模板函数模板实际上是定义一个通用函数,其函数类型和形参类型不确定,用一个虚拟的类型来代替。函数模板只适用于函数体相同,函数参数个数相同而类型不同的情况。上代码:# include<iostream>using namespace std;template <typename T> //模板声明,其中T为类型参数T max(T a, T b, T c){ if (a<b)原创 2021-02-16 10:14:11 · 382 阅读 · 0 评论 -
如何用VS Code正确编写运行一个CPP程序
如何用VS Code正确编写运行一个CPP程序 最近准备用VS Code来复习一下数据结构的算法题,可是发现写出来的程序总是运行不成功,就算照着书上的程序敲都显示运行问题,那应该是我除了源程序以外,还有一些其他的文件没有配置好了,(因为此时的VSC是可以运行部分CPP程序的)看其他人的帖子要么讲不清楚,要么讲得太复杂,索性自己去看官方文档了。假设此时你的编译器(GCC)和相应的扩展已经配置好。编写一个源程序,编译调试并成功运行的步骤如下:1.编写源程序 打开cmd,输入以下命令,mkdir p原创 2021-02-10 16:52:16 · 2847 阅读 · 0 评论 -
运算符重载
运算符重载运算符的重载实际上是通过函数重载实现的。一般格式:函数类型 operator 运算符名称(参数列表){对运算符的重载处理}上面的重载格式中,“operator +”就是重载函数的函数名,意为对“+”运算符的重载函数例如,想将"+"重载为对complex(复数)类的加法运算,函数原型可以为:Complex operator + (Comples &c1, Complex &c2);看一段代码????# include<iostream>using na原创 2021-02-07 11:38:11 · 307 阅读 · 0 评论 -
静态数据成员和静态成员函数
静态数据成员 静态数据成员在内存中只占一份空间,而不是每个对象都为它分配空间,每个对象都可以引用这个数据成员。静态数据成员所占的空间不属于对象,同成员函数类似。它所占的内存在声明一个类的时候程序开始运行时就已被分配,并可被使用(同静态变量类似)。静态数据成员可以被初始化,但只能在体外被初始化。如果静态数据成员是公用的(在public下声明),则可以在体外采用类名或对象名直接引用,而如果它是私有的(在private下声明),则它只能采用对象名(不可能是对象名,因为对象的数据成员若是私有的,只能通过对象的成原创 2021-02-04 10:35:16 · 936 阅读 · 0 评论