下面实现GetDeleteObjects
的最有效方法是什么?
class Foo {
public:
std::vector<Bar> GetDeleteObjects();
private:
std::vector<Bar> objects_;
}
std::vector<Bar> Foo::GetDeleteObjects() {
std::vector<Bar> result = objects_;
objects_.clear();
return result;
}
目前,至少执行了从 objects_ 到 result 的复制。例如,可以使用 std::move
来加快速度吗?
最佳答案
你可以交换 vector :
std::vector<Bar>
Foo::GetDeleteObjects() {
std::vector<Bar> result;
result.swap(objects_);
return result;
}
关于c++ - 返回+重置成员变量的最有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34284953/