C++11 vector 右值引用使用

本文介绍使用C++11的右值引用来优化自定义对象在容器如vector中的存储方式,避免了拷贝构造带来的效率问题,并通过具体代码示例展示了如何实现。

常用的容器,比如vector  我们在存储自定义对象的时候常常为了避免拷贝构造需要直接存储指针,当然在不关心效率的场景那就随各位了.现在C++11 有右值引用可避免这类问题,如下:

struct GsFeedbackItem
{
	GsFeedbackItem(GsFeedbackItemType t, GsGeometry* geo, GsFeedbackFunction f, double tol)
	{
		Type = t;
		Geometry = geo;
		Function = f;
		HittestTolerance = tol;
	}
	/// \brief 回馈对象的类型
	GsFeedbackItemType		Type;
	/// \brief 绘制的几何数据
	GsGeometryPtr			Geometry;
	
	/// \brief 对象功能
	GsFeedbackFunction		Function;


	/// \brief 命中容差
	double					HittestTolerance;


};

插入数据:

	m_FeedBackItems.emplace_back(eEditableHandle, new GsPoint(box.XMin,box.YMax), eLeftTopMove, 0);

遍历数据:

for (GsFeedbackItem const& Item : m_FeedBackItems)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值