我測試過這個,通過引用傳遞的速度是直接抓取成員的兩倍。例如。 -通過引用返回std :: Vector <>很慢?
class Mesh {
public:
inline std::vector<Vector3>& GetVertices() { return m_vertices; }
private:
std::vector<Vector3> m_vertices;
};
如果我經常調用GetVertices()每幀來獲取vert,它比直接訪問m_vertices慢得多。但是我想保持m_vertices的私密性。我能做什麼?
爲什麼它變慢?
請問您能給出測試代碼嗎? – RiaD
你正在編譯優化嗎?該功能應該內聯,這將使其速度一樣快。 –
調用GetVertices()的代碼是否將其捕獲到新值中?如果是這樣,你正在複製一份,所以通過引用返回對你沒有幫助。 – ildjarn