浅墨浓香

想要天亮进城,就得天黑赶路。

导航

上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 38 下一页

2017年10月28日

该文被密码保护。 阅读全文

posted @ 2017-10-28 23:24 浅墨浓香 阅读(26) 评论(0) 推荐(0) 编辑

摘要: 1. 树的定义 (1)树是一种非线性的数据结构 (2)树是由个结点组成的有限集合。如果n=0,称为空树。如果n>0,则: ①有一个特定的称之为根(root)的结点 ②根结点只有直接后继,但没有直接前驱 ③除根以外的其它结点划分为m(m≥0)个互不相交的有限集合T0、T1、…Tm-1,每个集合又是一棵 阅读全文

posted @ 2017-10-28 22:44 浅墨浓香 阅读(391) 评论(0) 推荐(0) 编辑

该文被密码保护。 阅读全文

posted @ 2017-10-28 22:37 浅墨浓香 阅读(20) 评论(0) 推荐(1) 编辑

摘要: 1. 堆排序(Heap Sort) (1)堆:这里所指的堆,一般是一颗完全二叉树,同时满足以下两个性质(以大顶堆为例) ①每个父结点的键值总是大于等于其左右孩子的键值。 ②每个结点的左子树和右子树都是一个大顶堆。 (2)基本思想(以大顶堆为例): 将待排序的序列构成一个大顶堆(如图①)。此时,整个序 阅读全文

posted @ 2017-10-28 22:36 浅墨浓香 阅读(1719) 评论(0) 推荐(0) 编辑

2017年10月27日

摘要: 1. std::forward原型 2. 完美转发(Perfect Forwarding) (1)完美转发:是指在函数模板中,完全依照模板的参数类型(即保持实参的左值、右值特性),将实参传递给函数模板中调用的另外一个函数。 (2)原理分析 (3)std::forward和std::move的联系和区 阅读全文

posted @ 2017-10-27 12:32 浅墨浓香 阅读(4973) 评论(0) 推荐(0) 编辑

2017年10月26日

摘要: 1. std::move (1)std::move的原型 (2)std::move的作用 ①std::move函数的本质就是强制转换,它无条件地将参数转换为把一个右值引用,又由于函数返回的右值引用(匿名对象)是一个右值。因此,std::move所做的所有事情就是转换它的参数为一个右值。继而用于移动语 阅读全文

posted @ 2017-10-26 21:54 浅墨浓香 阅读(1446) 评论(1) 推荐(2) 编辑

2017年10月20日

摘要: 1. 左值和右值 (1)两者区别: ①左值:能对表达式取地址、或具名对象/变量。一般指表达式结束后依然存在的持久对象。 ②右值:不能对表达式取地址,或匿名对象。一般指表达式结束就不再存在的临时对象。 (2)右值的分类 ①将亡值(xvalue,eXpiring value):指生命期即将结束的值,一般 阅读全文

posted @ 2017-10-20 11:43 浅墨浓香 阅读(4692) 评论(2) 推荐(1) 编辑

2017年10月14日

摘要: 1. lambda的语法形式:[capture](params) opt -> ret {body;}; (1)capture为捕获列表 ①[]、[&]和[=]分别表示不捕获、按引用捕获、按值捕获所有父作用域中内的局部变量。(父作用域指包含lambda表达式的语句块,如main函数)。 ◆lambd 阅读全文

posted @ 2017-10-14 13:34 浅墨浓香 阅读(870) 评论(1) 推荐(2) 编辑

2017年10月12日

该文被密码保护。 阅读全文

posted @ 2017-10-12 09:34 浅墨浓香 阅读(22) 评论(0) 推荐(0) 编辑

2017年10月11日

该文被密码保护。 阅读全文

posted @ 2017-10-11 00:32 浅墨浓香 阅读(21) 评论(0) 推荐(0) 编辑

2017年10月9日

摘要: 1. 选择排序 (1)基本思想:每次(例如第i次,i=1,2,…,n-2)从后面n-i个待排的数据元素中选出关键字最小的元素,作为有序元素序列第i个元素。 (2)实例分析 2. 插入排序 (1)插入排序的基本思想 当插入第i(i≥1)个数据元素时,前面的V[0],V[1],…,V[i-1]已经排好序 阅读全文

posted @ 2017-10-09 22:23 浅墨浓香 阅读(346) 评论(1) 推荐(1) 编辑

2017年10月7日

摘要: 1. std::function (1)首先是一个类模板,用于包装可调用对象。可以容纳除了类成员(函数)指针之外的所有可调用对象。 (2)可以将普通函数,lambda表达式和函数对象类统一起来。尽管它们并不是相同的类型,但通过function类模板,可以转化为相同类型的对象(function对象), 阅读全文

posted @ 2017-10-07 18:08 浅墨浓香 阅读(863) 评论(0) 推荐(0) 编辑

摘要: 1. 温故知新:std::bind1st和std::bind2nd (1)bind1st、bind2nd首先它们都是函数模板,用于将参数绑定到可调用对象(如函数、仿函数等)的第1个或第2个参数上。 (2)函数的返回值是一个函数对象。它用于包装和改造传入的函数(或仿函数),并形成一个新的仿函数对象(是 阅读全文

posted @ 2017-10-07 12:09 浅墨浓香 阅读(713) 评论(1) 推荐(1) 编辑

2017年10月6日

摘要: 1. 几种可调用对象(Callable Objects) (1)普通函数指针或类成员的函数指针 (2)具有operator()成员函数的类对象(仿函数)。如c++11中的std::function类模板,本质上就是一个仿函数。 (3)可被转换为函数指针的类对象(需要重载类型转换操作符operator 阅读全文

posted @ 2017-10-06 23:47 浅墨浓香 阅读(701) 评论(0) 推荐(1) 编辑

2017年10月5日

摘要: 1. 基于范围的for循环(range-based for) (1)语法:for(decl : coll){//statement} ①decl用于声明元素及类型,如int elem或auto elem(让编译器自动推导集合中元素的类型),但应注意auto& elem和auto elem的区别,前者 阅读全文

posted @ 2017-10-05 20:34 浅墨浓香 阅读(1355) 评论(0) 推荐(0) 编辑

摘要: 1. 防止类型收窄 (1)类型收窄:指的是导致数据内容发生变化或者精度丢失的隐式类型转换。 (2)类型收窄的几种情况: ①从浮点数隐式转换为整型数,如int i=2.2; ②从高精度浮点数隐式转换为低精度浮点数。如从long double转double或float。 ③从整型数隐式转换为浮点数,并且 阅读全文

posted @ 2017-10-05 10:35 浅墨浓香 阅读(2696) 评论(0) 推荐(0) 编辑

摘要: 1. 初始化列表的实现 (1)当编译器看到{t1,t2…tn}时便会生成一个initializer_list<T>对象(其中的T为元素的类型),它关联到一个array<T,n>。 (2)对于聚合类型,编译器会将array<T,n>内的元素逐一分解并赋值给被初始化的对象。这相当于为该对象每个字段分别赋 阅读全文

posted @ 2017-10-05 00:06 浅墨浓香 阅读(2939) 评论(0) 推荐(0) 编辑

2017年10月4日

摘要: 1. 统一初始化(Uniform Initialization) (1)在C++11之前,很多程序员特别是初学者对如何初始化一个变量或对象的问题很容易出现困惑。因为可以用小括号、大括号或赋值操作符等多种方式进行初始化。 (2)基于这个原因,C++11引入了“统一初始化”的概念。这意味着我们可以使用{ 阅读全文

posted @ 2017-10-04 21:34 浅墨浓香 阅读(1075) 评论(0) 推荐(0) 编辑

摘要: 1. 模板模板参数 (Template template parameter) (1)模板模板参数:即模板的参数也是一个模板。 (2)声明格式形如: 2. 模板模板参数的实参匹配 (1)实参与Container模板的参数必须完全匹配 (2)当不需要使用模板参数时,参数名可以省略不写。如 templa 阅读全文

posted @ 2017-10-04 10:51 浅墨浓香 阅读(666) 评论(1) 推荐(0) 编辑

2017年10月2日

摘要: 1. 右尖括号的问题 (1)在实例化模板时,会出现两个连续右尖括号(>>),如: ①vector<list<int> >; //注意,两个右尖括号之间有空格。C++98/03/11均支持 ②vector<list<int>>; //c++11开始支持这种写法!在C++98/03将连写的>>当成右移操 阅读全文

posted @ 2017-10-02 23:57 浅墨浓香 阅读(872) 评论(2) 推荐(0) 编辑

上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 38 下一页