C++ 正确的数组值是否可以提高性能?
例如,我有C++ 正确的数组值是否可以提高性能?,c++,rvalue-reference,C++,Rvalue Reference,例如,我有 class A { std::array<Object, 5> m_objects; A(std::array<Object, 5> objects) : m_objects(std::move(objects)) //does using right value will improve // performance in some cases??
class A
{
std::array<Object, 5> m_objects;
A(std::array<Object, 5> objects)
: m_objects(std::move(objects)) //does using right value will improve
// performance in some cases??
{}
};
A类
{
std::数组m_对象;
A(std::数组对象)
:m_objects(std::move(objects))//使用正确的值是否会提高性能
//某些情况下的性能??
{}
};
在构造函数中使用正确的值是否会在某些情况下提高性能???您还应该添加另一个构造函数来接受临时数组
class A
{
std::array<Object, 5> m_objects;
A(std::array<Object, 5> objects)
: m_objects(std::move(objects))
{}
A(std::array<Object, 5>&& robj): m_objects(std::move(robj))
{}
};
A类
{
std::数组m_对象;
A(std::数组对象)
:m_对象(标准::移动(对象))
{}
A(std::array&&robj):m_对象(std::move(robj))
{}
};
您也可以使用转发引用
T&
,但为了清楚起见,我将其保留在这里。这是更明确的
还要注意,在这种情况下使用move并不总是保证性能。对于数组
移动意味着移动数组持有的元素。在本例中,对象
类实例
为了更好地执行此操作,您应该提供一个将构造函数
移动到对象
类,否则这里的移动操作只会是单个对象
实例的副本
注意:对象的移动构造函数应该比复制构造函数便宜。否则,在性能方面,移动和复制之间就没有区别。如果不想提高性能(在某些情况下),请使用通用参考资料。可能的复制?“正确的价值观”?你是说“右值”?!