![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
shanggeh
这个作者很懒,什么都没留下…
展开
-
范围for语句
C++11新标准提供的范围for语句,遍历给定序列中的每个元素,语法格式: for(declaration : expression) statement;declaration 负责定义一个变量,该变量被用于访问序列中的基础元素expression 被遍历的序列对象例如,遍历...原创 2018-04-09 21:37:55 · 291 阅读 · 0 评论 -
C++宏定义
原文链接一、#define的基本用法 #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利。1 #define命令剖析...转载 2018-07-19 19:42:43 · 123 阅读 · 0 评论 -
智能指针
1.智能指针的作用 C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的概念,方便管理堆内存。使用普通指针,容易造成堆内存泄露(忘记释放),二次释放,程序发生异常时内存泄露等问题等,使用智能指针能更好的管理堆内存。理解智能指针需要从下面三个层次:从较浅的...转载 2018-07-03 21:38:24 · 128 阅读 · 0 评论 -
类模板
类模板是用来生成类的蓝图的,与函数模板不同,编译器不能自动推断类模板的模板参数类型,所以在使用类模板时,需要使用尖括号来提供额外的信息。vector<int> v1;map<string, int> m1;...原创 2018-05-20 22:13:56 · 166 阅读 · 0 评论 -
函数模板
模板是泛型编程的基础,一个模板就是创建类或者函数的蓝图或者说公式。一、定义模板1. 函数模板。我们可以定义一个通用的函数模板,而不是为每一个类型都定义一个重载函数。template <typename T>int compare(const T& v1, const T& v2){ if(v1 < v2) return -1; if(v1 &g...原创 2018-05-19 23:28:31 · 142 阅读 · 0 评论 -
运算符重载
1. 运算符重载函数形式: 返回值 关键字operator 运算符(参数列表){函数体}2. 重载运算符函数的参数数量与运算符的运算对象数量一致,一元运算符有一个参数,二元运算符有两个参数。二元运算符左侧的对象传递给第一个参数,右侧的对象传递给第二个参数。3. 运算符函数是成员函数时,this绑定到左侧运算对象,运算符函数的参数数量也要比运算对象少一个。4. 运算符函数或者是类成员函数,或者...原创 2018-05-12 22:48:48 · 130 阅读 · 0 评论 -
函数指针
C/C++ 函数指针使用总结一 函数指针介绍 函数指针指向某种特定类型,函数的类型由其参数及返回类型共同决定,与函数名无关。举例如下:int add(int nLeft,int nRight);//函数定义 该函数类型为int(int,int),要想声明一个指向该类函数的指针,只需用指针替换函数名即可:int (*pf)(int,int);//未初始化 则pf...转载 2018-04-24 22:49:24 · 214 阅读 · 0 评论 -
lambda表达式-2
当定义一个lambda时,编译器生成了一个与lambda对应的类类型,这个类类型是未命名的。因此,当向一个函数传递一个lambda时,同时定义了一个类类型以及该类型的一个对象:传递的参数就是该对象。类似的,使用auto定义一个用lambda初始化的变量时,实际上定义了一个lambda生成的类类型对象。auto f = [] {return 42}; cout << f(...原创 2018-04-18 22:11:02 · 298 阅读 · 0 评论 -
lambda表达式
sort算法(algorithm)在排序时,会默认使用元素类型的<或者==运算符来完成元素的比较,但是有时容器的元素类型没有定义<、==等操作运算符,因此算法库为此类算法重载了另外一个版本,允许我们自己提供自定义的操作来代替默认的运算符。 如下所示的程序段:bool isShorter(const string & s1, const string & s...原创 2018-04-17 22:29:46 · 159 阅读 · 0 评论 -
泛型算法
1. 大多数算法都定义在algorithm中。一般情况下,这些算法并不直接操作容器,而是遍历由两个迭代器指定的一个元素范围来进行操作。迭代器另算法不依赖容器,但算法依赖于元素类型的操作...原创 2018-04-16 23:14:42 · 125 阅读 · 0 评论 -
const 限定符总结
1、const 常量const int bufSize = 256; //不可修改const 对象一旦创建后其值就不能修改const int j = get_Size(); //正确,可以通过表达式初始化const int k; //错误,没有初始化的常量2、const 对象作用域默认状态下,const 对象仅在文件内有效,如const int bufSize = 256; 仅在当前文件内有效多个...原创 2018-03-27 22:02:35 · 109 阅读 · 0 评论 -
顺序容器概述
1. 顺序容器类型vector 可变大小数组deque 双端队列list 双向链表forward_list 单向链表array 固定大小数组string 字符串,与vector类似,但专门用于保存字符2. 选择容器的...原创 2018-04-09 20:59:04 · 101 阅读 · 0 评论 -
C++性能优化指南
C++性能优化指南 这是一篇关于C++性能优化指南的学习笔记,主要是通过阅读学习Kurt Guntheroth著的Optimized C++:Proven Techniques for Heightened Performance。 这是一本知识量和信息量很大的一本书书,书里详细介绍了影响C++程序性能的原因,也给出了很多提高性能的优化策略。 书中不仅讲解了软件和系统方面的相关内容,...原创 2018-10-29 21:24:56 · 1391 阅读 · 0 评论