![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++基础
文章平均质量分 61
!
叶子_Y
我不会写文章!
展开
-
分离式编译模式
分离编译模式源于C语言,在C++语言中继续沿用。简单地说,分离编译模式是指:一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件连接起来形成单一的可执行文件的过程。分离编译模式的定义一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件连接起来形成单一的可执行文件的过程。分离编译模式的由来分离编译模式是C/C++组织源代码和生成可执行文件的方式。在实际开发大型项目的时候,不可能把所有的源程序都放在一个头文件中,而是分别由不原创 2021-03-26 15:50:08 · 321 阅读 · 1 评论 -
c++模板函数的声明和定义该在什么文件里?
最近在写模板函数的时候,发现了一个问题。按照江湖规矩我们的声明一般放在.h文件,定义放在.cpp文件。而在写模板函数的时候,套用江湖规矩会出错。解决方法:将模板函数的声明和定义都放在.h文件中。(不讲武德)粗浅分析:我们不将普通函数的定义放在.h文件中,就是怕在多个.cpp文件都用到该.h文件,造成多重定义。而对于模板,在实例化模板之前,编译器对模板的定义体是不处理的。所以就没有了会出现多重定义的顾虑。而在进行实例化模板函数,要求编译器在实例化模板时必须在上下文中可以查看到其定义实体。参考文章:原创 2020-12-04 11:30:42 · 1465 阅读 · 0 评论 -
VS “xxx.exe触发了一个断点“
问题描述:生成解决方案成功,运行的时候却弹出一个错误——“xxx.exe触发了一个断点"。有可能是因为数组越界造成的,仔细检查每一处用到了数组的地方。比较大可能是因为用指针动态分配数组空间,然后访问时数组越界。PS:吃一堑,长一智...原创 2020-11-30 22:37:14 · 4135 阅读 · 0 评论 -
快速判断一个数是不是素数(质数)
朴素的方法:判断从2到sqrt(n)是否有数可以与其整除。(课本都有)下面介绍一个更快的方法:质数有一个分布规律——大于等于5的质数一定和6的倍数相邻。栗子:5和7,11和13。由此进行剪枝,达到优化的效果。Code#include<iostream>#include<cmath>using namespace std;int prime(int num) //判断素数 { if (num == 1) return 0; if (num == 2 ||原创 2020-07-22 20:31:10 · 1109 阅读 · 0 评论 -
C++字符大小写转换 - string类
最近看到了一个用来转换字符大小写比较方便的函数。分享一下!#include<iostream>#include<string>#include<algorithm>using namespace std;int main() { string s="abcedf"; transform(s.begin(), s.end(), s.begin(), toupper);//转换成大写 cout << s << endl; transf原创 2020-08-08 08:58:54 · 169 阅读 · 0 评论 -
关于C++中string类size() length()函数的返回值
C++中string类size() length()函数的返回值是无符号数(重要的事情先说)今天晚上想重写一下KMP算法,然后被string类的length()函数卡了两小时!呜呜呜,好菜KMP算法的代码就不贴了,把问题简化一下int main() { string a, b; cin >> a >> b; int i = 0, j = -1; while (i < a.length() && j < b.length()) { ++i;原创 2020-07-30 00:19:13 · 3660 阅读 · 11 评论 -
c++判断字符串是否为回文
回文是指正读反读均相同的字符序列。如"abba"和”abdba”均是回文,但"good"不是回文。Solution1使用reverse()函数将字符串反转,与原字符串比较,若相同,则是回文,否则不是。例如:将"abba"反转得到"abba",和原字符串相同。将"good"反转得到"doog",和原字符串不同。Code#include<iostream>#include<string>#include<algorithm>using namespace std原创 2020-07-21 17:31:44 · 37397 阅读 · 6 评论 -
C++不同进制间的转换
1)使用iostream中的控制符实现以不同基数形式输出控制符功能oct用八进制数表示法输入或输出数值dec用十进制数表示法输入或输出数值hex用十六进制数表示法输入或输出数值#include<iostream>using namespace std;int main(){ int a = 16; cout << "16的8进制:" << oct << a << endl;原创 2020-07-09 17:15:43 · 498 阅读 · 1 评论