摘要: 使用emplace_back就地构造emplace_back能就地通过参数构造对象,不需要拷贝或者移动内存,相比push_back能更好的避免内存的拷贝和移动,使得容器插入元素的性能得到进一步提升。在大多数情况下应该优先使用emplace_back来代替push_back.所有的标准库容器(arra... 阅读全文
posted @ 2015-09-13 22:11 农民伯伯-Coding 阅读(1727) 评论(0) 推荐(0) 编辑
摘要: std::movec++11中提供了std::move()来将左值转换为右值,从而方便的使用移动语义。move是将对象的状态或者所有权从一个对象转移到另一个对象,只是转移,没有内存拷贝。c++中所有容器都实现了move语义,方便我们实现性能优化。move只是转移了资源的控制权,本质上是将左值强制转换... 阅读全文
posted @ 2015-09-13 21:49 农民伯伯-Coding 阅读(3441) 评论(0) 推荐(0) 编辑
摘要: 1. 左值和右值 左值是表达式结束之后仍然存在的持久化对象,而右值是指表达式结束时就不再存在的临时对象。 c++11中,右值分为两种类型:将亡值(xvalue, expiring value),另一个是纯右值(prvalue, pure rvalue). 非引用返回的临时变量、运算表达式产生的临时变 阅读全文
posted @ 2015-09-13 21:01 农民伯伯-Coding 阅读(990) 评论(0) 推荐(0) 编辑