假设有一个返回 a 的方法std::set
:
std::set<string> MyClass::myMethod() const
{
std::set<string> result;
// ... some code to fill result ...
return result;
}
在调用方,我们可以通过myMethod
两种方式存储结果:
void MyClass::test()
{
const std::set<string> s1 = myMethod(); // 1
const std::set<string>& s2 = myMethod(); // 2 (using reference)
// ... some code to use s1 or s2 ...
}
我的问题是:
- 它们之间有什么区别吗?
- 哪种方式更好更高效?