我正在尝试在一个条件下创建对象并在另一个条件下列出这些对象,但它不起作用。
void fillVector(vector<Account>& newcreateAccObj){
string name;
string password;
cout<<"Enter your surname:"<<endl;
cin>>name;
cout<<"Enter your password:"<<endl;
cin>>password;
Account newAcc(name,password);
newcreateAccObj.push_back(newAcc);
cout<<endl;
}
这很好用。
void printVector(vector<Account>& newcreateAccObj){
unsigned int size=newcreateAccObj.size();
for(unsigned int i=0;i<size;i++){
cout<<"Account"<<i+1<<endl;
cout<<"-----------"<<endl;
newcreateAccObj[i].getId();
newcreateAccObj[i].getName();
cout<<endl;
}
}
当我在相同条件下执行这两个函数时,这也可以正常工作。
但是当我这样做时:
int main(){
int whileCondition=-1;
string girisSecim;
vector<Account> createAccObj;
while(whileCondition==-1){
cout<<"--------------------------------------------------------"<<endl;
cout<<"??????????????????????????????????????????????????????"<<endl;
cout<<"1-create acc 2-transferring"<<endl;
cout<<"3-enter acc 4-exit"<<endl;
cout<<"--------------------------------------------------------"<<endl;
cin>>girisSecim;
if(girisSecim=="1"){
fillVector(createAccObj); //BURDA OBJE OLUSTURULUYOR
}
else if(girisSecim=="2"){
printVector(createAccObj);
}
else if(girisSecim=="3"){
}
else if(girisSecim=="4"){
return 0;
}
else{
cout<<"Hatali tuslama."<<endl;
}
whileCondition=0;
cout<<"Programa devam etmek icin -1'i, cikmak icin herhangi bir seyi tuslayiniz."<<endl;
cin>>whileCondition;
}
编辑:我编辑了主要部分。
我首先选择选项1。我创建了我的对象并返回选择菜单,之后我选择了选项2,它给了我一个空白输出。
答案 0 :(得分:-1)
遵循createAccObj的生命周期。
好像你没有向两个函数发送相同的向量。
我猜测,你的代码看起来像这样:
cout
这里,在每次迭代时,都会创建新的矢量,因此当您尝试打印时,会打印空矢量。 如果是这种情况,只需删除循环外的矢量减速度。
编辑:
再次查看代码,似乎忘记了newcreateAccObj[i].getId();
中的Android.App.AlertDialog.ThemeDeviceDefaultLight
和newcreateAccObj [i] .getName();