上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 25 下一页
摘要: 一、 c++ traitstraits是c++模板编程中使用的一种技术,主要功能:把功能相同而参数不同的函数抽象出来,通过traits将不同的参数的相同属性提取出来,在函数中利用这些用traits提取的属性,使得函数对不同的参数表现一致。traits是一种特性萃取技术,它在Generic Progr... 阅读全文
posted @ 2015-09-14 17:02 农民伯伯-Coding 阅读(22671) 评论(0) 推荐(9) 编辑
摘要: 使用c++的时候,经常会在 const int *p 和 int * const p这个地方迷惑。这里记录一下: const int *p = int const *p //这里const后面的为*p, 将他们视为一个整体,即 *p是const的,即p指针指向的内容是不可以修改的;但是p是可以修改的 阅读全文
posted @ 2015-09-14 15:42 农民伯伯-Coding 阅读(760) 评论(0) 推荐(0) 编辑
摘要: 使用emplace_back就地构造emplace_back能就地通过参数构造对象,不需要拷贝或者移动内存,相比push_back能更好的避免内存的拷贝和移动,使得容器插入元素的性能得到进一步提升。在大多数情况下应该优先使用emplace_back来代替push_back.所有的标准库容器(arra... 阅读全文
posted @ 2015-09-13 22:11 农民伯伯-Coding 阅读(1741) 评论(0) 推荐(0) 编辑
摘要: std::movec++11中提供了std::move()来将左值转换为右值,从而方便的使用移动语义。move是将对象的状态或者所有权从一个对象转移到另一个对象,只是转移,没有内存拷贝。c++中所有容器都实现了move语义,方便我们实现性能优化。move只是转移了资源的控制权,本质上是将左值强制转换... 阅读全文
posted @ 2015-09-13 21:49 农民伯伯-Coding 阅读(3450) 评论(0) 推荐(0) 编辑
摘要: 1. 左值和右值 左值是表达式结束之后仍然存在的持久化对象,而右值是指表达式结束时就不再存在的临时对象。 c++11中,右值分为两种类型:将亡值(xvalue, expiring value),另一个是纯右值(prvalue, pure rvalue). 非引用返回的临时变量、运算表达式产生的临时变 阅读全文
posted @ 2015-09-13 21:01 农民伯伯-Coding 阅读(997) 评论(0) 推荐(0) 编辑
摘要: tuple是一个固定大小的不同类型值的集合,是泛化的 std::pair。可以当做一通用的结构体使用,不需要创建结构体而又获取结构体的特征,在某些情况下可以取代结构体,使程序简洁、直观。创建tuple 1. make_tupe tuple tp = make_tuple(sendPack... 阅读全文
posted @ 2015-09-12 17:43 农民伯伯-Coding 阅读(1184) 评论(0) 推荐(0) 编辑
摘要: lambda表达式函数式编程的一个语法,有如下优点:(1)声明式编程风格:就地匿名定义目标函数或函数对象,不需要额外写一个命名函数或者函数对象。以更直接的方式写程序,好的可读性和可维护性。(2)简洁:不需要额外再写一个函数或者函数对象,避免了代码膨胀和功能分散。(3)在需要的时间和地点实现功能闭包,... 阅读全文
posted @ 2015-09-12 17:33 农民伯伯-Coding 阅读(532) 评论(0) 推荐(0) 编辑
摘要: c++11中增加了std::function和std::bind,可更加方便的使用标准库,同时也可方便的进行延时求值。可调用对象c++中的可调用对象存在以下几类:(1)函数指针(2)具有operator()成员函数的类对象(仿函数)(3)可被转换为函数指针的类对象(4)类成员(函数)指针void f... 阅读全文
posted @ 2015-09-12 16:39 农民伯伯-Coding 阅读(3268) 评论(0) 推荐(0) 编辑
摘要: c++11中有基于范围的for循环,基于范围的for循环可以不再关心迭代器的概念,只需要关系容器中的元素类型即可,同时也不必显式的给出容器的开头和结尾。int arr[] = {1, 2, 3, 4};for(int a : arr){...}vector str_arr{"hello", "wor... 阅读全文
posted @ 2015-09-12 15:18 农民伯伯-Coding 阅读(2588) 评论(0) 推荐(1) 编辑
摘要: 1. 使用列表初始化在c++98/03中,对象的初始化方法有很多种,例如int ar[3] = {1,2,3};int arr[] = {1,2,3}; //普通数组struct A{ int x; struct B{ int y; int z; } ... 阅读全文
posted @ 2015-09-12 13:32 农民伯伯-Coding 阅读(942) 评论(0) 推荐(0) 编辑
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 25 下一页