![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
发霉的宅大人
让世界听见中国游戏的声音!
展开
-
# define的用法
一、宏的定义与撤销1、宏定义时尽量加上括号#include <iostream>#include<math.h>using namespace std;#define T1 3+4 //容易产生歧义#define T2 (4+3)//添加括号后,语义清楚int main(){ int a =1; int b =1; a = 2*T...原创 2019-11-04 13:25:38 · 551 阅读 · 0 评论 -
C++内联函数
C++内联函数1、什么是内联函数内联函数是C++的增强特性之一,用来降低程序的运行时间。当内联函数收到编译器的指示时,即可发生内联:编译器将使用函数的定义体来替代函数调用语句,这种替代行为发生在编译阶段而非程序运行阶段。值得注意的是,内联函数仅仅是对编译器的内联建议,编译器是否觉得采取你的建议取决于函数是否符合内联的有利条件。如何函数体非常大,那么编译器将忽略函数的内联声明,而将内联函数作为...原创 2019-11-01 12:26:10 · 1054 阅读 · 0 评论 -
const关键字
const关键字1、const和变量const int a = 3;在编译阶段,编译器就知道 a 这个变量是read-only的,不能被修改。一旦试图修改就会报错const 处于类型前还是类型后没有影响const int a =3;int const a =3;//这两个是一样的2、const和函数参数如果我们不希望传入函数得参数被修改,可以用const#include...原创 2019-10-29 15:34:08 · 110 阅读 · 0 评论 -
引用和指针的区别
1、指针有自己的一块空间,而引用只是一个别名指针有自己的内存,引用的内存就是引用的对象的对存#include <iostream>using namespace std;int main(){ int data = 1; int* a = &data; int& b = data; cout << "address of a = " <...原创 2019-10-25 18:29:26 · 157 阅读 · 0 评论 -
auto关键字
C++98auto早在C++98标准中就存在了auto关键字,那时候的作用是让变量变成自动变量,拥有自动的生命周期,但是临时变量在声明的时候本身就是自动生命周期了,所以这显得很多余。int a =10 ; //拥有自动生命期auto int b = 20 ;//拥有自动生命期static int c = 30 ;//延长了生命期取而代之,C++11就删除了原来的用法,改为了自动推导...原创 2019-10-24 14:58:00 · 524 阅读 · 0 评论 -
C++ 容器的基础知识总结
本文参考总结自(作者:melonstreet链接:https://www.cnblogs.com/QG-whz/p/5152963.html)0、容器概论容器是指用以容纳物料并以壳体为主的基本装置 ,C++的容器就是可以用来储存对象的容器。STL将定义的通用容器分三类:顺序容器,关联容器和容器适配器。顺序容器:array(C++本身内置)、vector、list、forward_li...原创 2019-10-23 15:48:56 · 475 阅读 · 0 评论 -
C++ 值传递、指针传递、引用传递详解
来自**: 一条鱼@博客园**链接:www.cnblogs.com/yanlingyin/archive/2011/12/07/2278961.html(点击尾部阅读原文前往)值传递:形参是实参的拷贝,改变形参的值并不会影响外部实参的值。指针传递:形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作引用传递:形参相当于是实参的“别名”,对形参的操作其实就是对实...转载 2019-07-09 12:36:12 · 201 阅读 · 0 评论 -
C++ string中c_str()、data()、copy(p,n)函数的用法
1、c_str():生成一个const char*指针,指向以空字符终止的数组。参考自:csqlwy - 博客园链接:www.cnblogs.com/qlwy/archive/2012/03/25/2416937.html(点击尾部阅读原文前往)①因为c_str()返回的只是一个指向某字符串的指针,因此要么现用先转换,要么把它的数据复制到用户自己可以管理的内存中int main(){ ...转载 2019-07-08 12:03:41 · 15449 阅读 · 2 评论 -
减少C++代码编译时间的方法
来自:还在想啊 - 博客园链接:http://www.cnblogs.com/misserwell/p/4343927.htmlc++ 的代码包含头文件和实现文件两部分, 头文件一般是提供给别人(也叫客户)使用的, 但是一旦头文件发生改变,不管多小的变化,所有引用他的文件就必须重新编译,编译就要花时间,假如你做的工程比较大(比如二次封装chrome这类的开发),重新编译一次的时间就会浪费上班的...转载 2019-04-03 15:13:01 · 651 阅读 · 0 评论 -
用C语言模仿C++的类
本文参考以下作者文章文章来自:吴秦 - 博客园作者:吴秦链接:http://www.cnblogs.com/skynet/archive/2010/09/23/1833217.html继承和多态是面向对象语言最强大的功能。有了继承和多态,我们可以完成代码重用。在C中有许多技巧可以实现多态。本文的目的就是演示一种简单和容易的技术,在C中应用继承和多态。通过创建一个VTable(virtual...转载 2019-04-08 17:18:12 · 1318 阅读 · 0 评论 -
Manacher算法
Manacher算法转载自https://www.cnblogs.com/z360/p/6375514.htmlmanacher算法,我习惯叫他 “马拉车”算法。在介绍算法之前,首先介绍一下什么是回文串,所谓回文串,简单来说就是正着读和反着读都是一样的字符串,比如abba,noon等等,一个字符串的最长回文子串即为这个字符串的子串中,是回文串的最长的那个。计算字符串的最长回文字串最简单的算...转载 2019-04-01 19:51:04 · 240 阅读 · 0 评论 -
C语言字符减去‘0’的含义
示例代码如下int main(){ char str = '9'; int ret = str - '0'; printf("%d\n",ret); //或者更直白一点 printf("%d",'8' - '0'); printf("%c",'8' - '0');}打印结果如图图1图2图3由结果可知1、字符和字符相减的本质就...原创 2019-03-28 11:40:00 · 21385 阅读 · 1 评论 -
移动赋值为什么返回引用
下面这段代码是自实现的myString的移动赋值(深拷贝)class myString{public: myString() { _str = new char; *_str = '0'; } myString(char * str) { int len = strlen(str); _s...原创 2019-03-22 12:11:01 · 289 阅读 · 1 评论