用vector制作学生管理系统的问题


#include
#include
#include
#include
using namespace std;
struct stu
{
    char name[20];
    
    int score;
};
vector<struct stu>vk;

void makemenu()
{
    cout<<"---------学生成绩管理----------"<"1.录入功能"<"2.浏览功能"<"3.删除功能"<"4.修改功能"<"5.查询功能"<"6.退出系统"<"-----------------------------------"<long get_long()
{
    long input;
    char ch;
    while(scanf("%d", &input) != 1)
    {
        while((ch = getchar())!= '\n') 
            putchar(ch);
        cout<<"输入错误,请重新输入"<return input;}
    
    
void keydown()
{long m;
struct stu b;
vector::iterator it=vk.begin();
vector::iterator it1=vk.begin();
string nname;
m=get_long();
switch(m)
    {
        
        case 1:cout<<"----【录入模块】----"<>b.name>>b.score;
        vk.push_back(b);
        break;
        
        case 2:cout<<"----【浏览模块】----"<for(;it!=vk.end();it++)    
            {
                cout<<(*it).name<<' '<<(*it).score<break;
            
        case 3:cout<<"----【删除模块】----"<>nname;
        for(it1=vk.begin();it1!=vk.end();it1++);
        {
                if((*it1).name==nname)
            {
            vk.erase(it1);
             break;
            }
        }
        
        
         if(it1==vk.end())
        {
            cout<<"想要删除的对象不存在"<break;
        
        case 4:cout<<"----【修改模块】----"<break;
        
        case 5:cout<<"----【查询模块】----"<break;
        
        case 6:cout<<"----【退出系统】----"<exit(0);
              break;
    }
}
int main()
{

while(1)
{
        makemenu();
        keydown();
        system("pause");
        system("cls");
}
}

img

为啥删除模块的it1直接等于vk.end()输出了“想要删除的对象不存在”;

您可以看看:https://ask.csdn.net/questions/7897118
和您的一模一样~~~
我就不复制了。。。

65行 for(it1=vk.begin();it1!=vk.end();it1++); 后面的分号多余了啊,删掉