作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
需要设计一个函数返回一个BigClass数组。为了防止不必要的复制,我有两个选择。
struct BigClass
{
int manyfields;
};
boost::shared_ptr<vector<BigClass> > Fun1()
{
throw;
}
vector<boost::shared_ptr<BigClass> > Fun2()
{
throw;
}
问题> 哪种方法更好?如果以上都不好,请提供更好的。
谢谢
最佳答案
VS2010 允许您使用移动语义。
这意味着:
std::vector<BigClass> retBigVector() { return std::vector<BigClass>(); }
会工作得很好。
retBigVector 将构建一个大 vector 并将其移动到您想要的任何位置。
这是出现移动语义的主要原因之一 - VS2010 再次支持这一点。
关于c++ - 传递 LargeData vector 的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20336401/
需要设计一个函数返回一个BigClass数组。为了防止不必要的复制,我有两个选择。 struct BigClass { int manyfields; }; boost::shared_
我是一名优秀的程序员,十分优秀!