从另一个问题我看到了这段代码:
template <typename T>
std::set<T> getUnion(const std::set<T>& a, const std::set<T>& b)
{
std::set<T> result = a;
result.insert(b.begin(), b.end());
return result;
}
我们不能只使用下面的代码吗?:
template <typename T>
std::set<T> getUnion(std::set<T> a, const std::set<T>& b)
{
a.insert(b.begin(), b.end());
return a;
}
有什么区别吗??
我无法理解使用第一种方法的原因。
第二个代码是否禁止 RVO ?