如何将 `std::vector` 成员变量移动到方法的调用者?
How can I move a `std::vector` member variable to the caller of a method?
请考虑以下代码
class A
{
public:
A(std::size_t d)
: m_v(d)
std::vector<double> operator()() {
return m_v;
}
private:
std::vector<double> m_v;
};
我想移动 m_v
到operator()
的调用者而不是复制它。我需要做什么?只需写 return std::move(m_v)
并将 return 类型更改为 std::vector<double>&&
?
写return std::move(m_v)
就够了。
请考虑以下代码
class A
{
public:
A(std::size_t d)
: m_v(d)
std::vector<double> operator()() {
return m_v;
}
private:
std::vector<double> m_v;
};
我想移动 m_v
到operator()
的调用者而不是复制它。我需要做什么?只需写 return std::move(m_v)
并将 return 类型更改为 std::vector<double>&&
?
写return std::move(m_v)
就够了。