如何解决向量作为类成员
class A
{
private:
std::vector<int>myvec;
public:
const std::vector<int> & getVec() const {return myvec;}
};
void main()
{
A a;
bool flag = getFlagVal();
std::vector<int> myVec;
if(flag)
myVec = a.getVec();
func1(myVec);
}
在 myVec= a.getVec()
行中,有一个 vector
的副本,尽管它是通过引用返回的。如果 flag
不是 true
,将传递一个空向量。
无论如何要避免这个副本?
解决方法
func1(flag ? a.getVec() : std::vector<int>());
是一种方式。
如果 func1
通过 const
引用获取向量,这将起作用,因为两个匿名临时对象都可以绑定到它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。