左值、左值引用、右值、右值引用

转载自:http://www.cnblogs.com/SZxiaochun/p/8017475.html 左值、左值引用、右值、右值引用 1、左值和右值的概念 左值是可以放在赋值号左边可以被赋值的值;左值必须要在内存中有实体; 右值当在赋值号右边取出值赋...

2018-06-20 22:42:50

阅读数:34

评论数:0

C++11:尽量使用std::array来代替数组

C++11后,标准库引入了更现代化的数组std::array,cppreference.com是这样介绍的: 定义于头文件 <array> template< class T, std:...

2018-05-23 09:38:34

阅读数:1241

评论数:0

C++11中的“万能引用”

首先我们来看一个函数模板的代码: template<typename T> void func(T& param){ } 这里模板函数参数接收一个引用,但是却不能这样调用: func(27); //error: invali...

2018-05-23 09:09:06

阅读数:339

评论数:0

C++11的enum class 、enum struct 和 enum

原文地址:https://blog.csdn.net/sanoseiichirou/article/details/50180533侵删C++标准文档——n2347(学习笔记) 链接:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n...

2018-05-17 19:49:35

阅读数:44

评论数:0

一个简单引用计数智能指针的实现

template <typename T> class SharedPtr{ public: SharedPtr() = delete;//不允许未初始化的智能指针,防止使用空指针 SharedPtr(const SharedPtr&a...

2018-05-06 17:51:02

阅读数:39

评论数:0

C++ throw()关键词:一个被C++标准抛弃的玩意儿

throw()关键词相信大家在很多C++教程或者代码中看到过,这个博客以一Stackoverflow上的问题开始:应该在C++中使用throw()关键词吗? 回答是:不应该 理由主要是各个编译器并没有一个统一的标准去处理这个关键词,还有这个关键词作用很累赘等等,总之是不应该的。 Anyw...

2018-05-06 17:44:13

阅读数:758

评论数:0

C++模版与特化与偏特化

模版与特化的概念函数模版与类模版C++中模板分为函数模板和类模板函数模板:是一种抽象函数定义,它代表一类同构函数。类模板:是一种更高层次的抽象的类定义。特化的概念所谓特化,就是将泛型的东东搞得具体化一些,从字面上来解释,就是为已有的模板参数进行一些使其特殊化的指定,使得以前不受任何约束的模板参数,...

2018-05-04 17:06:48

阅读数:25

评论数:0

《Effective C++》:学习处理模板化基类内的名称

假设有以下需求: 要给N个公司发信息,目前有Alibaba、Microsoft、Amazon三家公司,给Microsoft、Amazon发送明文,给Alibaba发送密文(特殊情况),可以用C++模板技术来实现。 class Alibaba{ public: //给Alibaba发...

2018-05-04 16:44:23

阅读数:25

评论数:0

为什么C++11引入了std::ref?

本文转载自: https://www.cnblogs.com/jiayayao/p/6527713.html 如有侵权,通知删除   C++本身有引用(&),为什么C++11又引入了std::ref?   主要是考虑函数式编程(如std::bind)...

2017-12-17 22:52:33

阅读数:379

评论数:0

C++中的智能指针(1):shared_ptr 的介绍和用法

原理简介C++中采用new和delete来创建(申请)和释放(销毁)内存,但是因为释放内存时机把握不当、忘记释放内存等原因,很难准确及时地管理内存。 因此,C++标准库推出了智能指针机制来更好的管理内存,智能指针能自动释放所指向的对象。shared_ptr简介shared_ptr 允许多个...

2017-12-16 13:50:41

阅读数:302

评论数:0

C++中lambda表达式(匿名函数)的用法

简介之前在看SICP《计算机程序的构造和解释》一书的时候,中用了大量的Scheme语言(一种Lisp语言的方言)来解释书中的函数式程序设计思想(只读到第二章后半部。。。有空再补)。Scheme的一个主要特性是可以像操作数据一样操作函数调用, 例如实现对一个操作生成的数乘以二的函数:;这是一个实现...

2017-12-06 22:47:58

阅读数:151

评论数:0

C++中的委托构造

委托构造,就是构造函数调用其他的构造函数来完成构造过程,其他的构造函数写在成员初始列表中。using namespace std;class base{ private: int a; public: //非委托函数使用相应的实参初始化相应的实参初始化成员 base(int...

2017-11-30 23:11:54

阅读数:88

评论数:0

Google C++ 风格指南 :尽可能用 sizeof(varname) 代替 sizeof(type).

5.18. sizeof Tip 尽可能用 sizeof(varname) 代替 sizeof(type). 使用 sizeof(varname) 是因为当代码中变量类型改变时会自动更新. 您或许会用 sizeof(type) 处理不涉及任何变量的代码,比如处理来自外部或内部的数据格...

2017-11-29 17:12:30

阅读数:131

评论数:0

C++ 11:delete关键词和一条《Effective C++》的过时条款

C++ 11:delete关键词和一条《Effective C++》的过时条款

2017-11-24 00:53:34

阅读数:381

评论数:0

C++中const的用法:使代码更加健壮

本文将从三个方面来讨论const带来的代码健壮性:const在变量中的用法,const在函数中的用法,const作为返回值的用法。const在变量中的用法代码示例:int num = 1; const int a = 1; //a的值不能被改变 const int *b = &n...

2017-11-23 21:50:15

阅读数:1586

评论数:0

C++中的Unicode编码:wchar, UTF-8,UTF-16,UTF-32

C++在C11标准中加入了对Unicode编码的支持,新增了wchar_t、char16_t、char32_t内置数据类型。 cout << sizeof(char) << endl; cout << sizeof(wchar_t) <<...

2017-11-14 20:29:34

阅读数:226

评论数:0

《Effective C++》条款25:考虑写出一个不抛异常的swap函数

swap是两个元素交换的函数,在STL中也有对应的实现,其基本实现为:namespace std{ template<typename T> void swap(T& a, T& b){ T temp(a); a = b;...

2017-10-25 14:05:03

阅读数:106

评论数:0

C++内存泄漏的几种情况

原文地址:http://www.cnblogs.com/SeekHit/p/6549940.html#commentform 1. 在类的构造函数和析构函数中没有匹配的调用new和delete函数 两种情况下会出现这种内存泄露:一是在堆里创建了对象占用了内存,但是没有显示地释放对象占用...

2017-10-08 12:43:33

阅读数:1847

评论数:0

C++ 类的空间大小计算基本方法

在类中,如果什么都没有,则类占用1个字节,一旦类中有其他的占用空间成员,则这1个字节就不在计算之内,如一个类只有一个int则占用4字节而不是5字节。 如果只有成员函数,则还是只占用1个字节,因为类函数不占用空间 虚函数因为存在一个虚函数表,需要4个字节,数据成员对象如果为指针则为4字节,注意有...

2017-07-27 10:14:36

阅读数:5036

评论数:0

C++vector容器大小增长规律的总结

问:“vector大小是如何增长的?” 答:“自动增长的” 问:“增长规律是怎么?” 答: 。。。。。。 那么, 今天就来探究一下vector容器的大小增长规律:vector中得到大小的的函数有以下几个 方法 作用 size() 返回容器的大小 empty() 判断...

2017-07-17 16:20:48

阅读数:2501

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭