我无法向 c++ 添加元素

I cant add elements to the c++

本文关键字:添加 元素 c++      更新时间:2023-10-16
void Student::addStudent()
{
int studentAdd;
cout<<"How many student do you want to add?"<<endl;
cin>>studentAdd;
list<string>::iterator it;
cout<<"Enter the name of student"<<endl;
for(int i=0;i<studentAdd;++i)
{
cin>>studentName;
for(it=studentList.begin();it!=studentList.end();++it)
{
studentList.insert(it,studentName);
}
}
}

我试图将字符串元素添加到列表中,但是当我尝试使用另一个函数显示时,我看不到元素。

void Student::displayAllStudents() 
{
list<string>::iterator display;
cout<<"Students:n"<<endl;
for(display = studentList.begin();display!= studentList.end();++display)
{
cout<<*display<<endl;
}
}

你能帮帮我吗?

起初,您的列表是空的,因此 Begin 和 End 迭代器相等,因此此代码不会执行:

for(it=studentList.begin();it!=studentList.end();++it)
{
studentList.insert(it,studentName);
}

如果要在列表末尾添加元素,只需使用push_back函数即可。不需要第二个循环,所以你的代码可以像这样:

for(int i = 0; i < studentAdd; ++i)
{
cin>>studentName;
studentList.push_back(studentName);
}

如果列表中没有元素,则无法使用迭代器进行循环。 这是错误:

for(it=studentList.begin();it!=studentList.end();++it)
{
studentList.insert(it,studentName);
}

begin(( 和 end(( 在开始时指向同一个元素。

您可以使用 push_bask(( 添加元素。