函数中的向量
Vectors in functions
我的 .cpp 文件中有这些代码行:
void Student::operator+=(const Subject &a){
vector<Subject> v;
v.push_back(a);
}
我重载了这个运算符:
ostream &operator<<(ostream &output, Student &a){
vector<Subject>v;
/*for (auto& a:v){
output<<a<<endl;
}
*/
cout<<v.size()<<endl;
return output;
}
看起来,当我尝试打印向量的元素时,它显示它是空的。
它的v.size()是0.
虽然我已经注释掉了另一种显示元素的方式,但它也不起作用。
我不知道为什么我的向量在函数中使用时会丢失大小。
有什么可能的帮助吗?
您的向量 vector<Subject> v;
在每个运算符实现函数中,因此仅在每个函数的本地生成,并在其结束时被销毁。
考虑一次声明此向量,作为 Student
class.
的私有成员
我的 .cpp 文件中有这些代码行:
void Student::operator+=(const Subject &a){
vector<Subject> v;
v.push_back(a);
}
我重载了这个运算符:
ostream &operator<<(ostream &output, Student &a){
vector<Subject>v;
/*for (auto& a:v){
output<<a<<endl;
}
*/
cout<<v.size()<<endl;
return output;
}
看起来,当我尝试打印向量的元素时,它显示它是空的。 它的v.size()是0.
虽然我已经注释掉了另一种显示元素的方式,但它也不起作用。 我不知道为什么我的向量在函数中使用时会丢失大小。 有什么可能的帮助吗?
您的向量 vector<Subject> v;
在每个运算符实现函数中,因此仅在每个函数的本地生成,并在其结束时被销毁。
考虑一次声明此向量,作为 Student
class.