1. 程式人生 > >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)