我是编程新手,所以我不知道如何准确描述遇到的问题。
这是函数的声明
vector<int>& operator>>(vector<int>& v, int& x){
}
我只是想知道这个函数应该返回什么。 我正在尝试实现运算符&gt;&gt;对于矢量类,如果这与我的问题完全相关。
感谢您的帮助
答案 0 :(得分:3)
在这种情况下,您可能正在尝试连锁操作:vec >> int1 >> int2;
。这意味着你应该返回第一个参数,以便它可以在下次调用中使用。
vector<int>& operator>>(vector<int>& v, int& x){
x = v.back();
v.pop_back();
return v;
}
答案 1 :(得分:0)
vector<int>
应该退回。如果返回vector<int>&
,则无法返回新的向量,否则当函数完成且引用无效时,它将被超出范围。如果您返回输入的向量v
,那么您需要对其进行mofify,这是不明智的。