题目要求
解题思路
这道题看着简单,但是我还是不能独立完成,这个和我的心态有很大的关系,太过于焦躁不安,不能完全的沉下心来去解决问题。
同时对于vector容器的操作方法太过于生疏,需要多多练习。
总的来说,实力才是王道,还是你实力太弱,所以总是不安
代码:
#include<iostream>#include<string>#include<algorithm>#include<vector>using namespace std;struct Student{ int num; string name; string sex; int age;};bool Comp(const Student s1,const Student s2){ if(s1.num!=s2.num) return s1.num<s2.num; else return s1.num<s2.num;}void display(vector<Student> v){ vector<Student>::iterator it; for(it=v.begin();it!=v.end();it++){ if(it==v.begin()){ cout<<"("<<(*it).num<<","<<(*it).name<<","<<(*it).sex<<","<<(*it).age<<")"; }else{ cout<<",("<<(*it).num<<","<<(*it).name<<","<<(*it).sex<<","<<(*it).age<<")"; } } cout<<endl;}int main(){ vector<Student> v; Student p; Student stu[3]; char ch[100]; stu[0].num=10;stu[0].name="wes";stu[0].sex="f";stu[0].age=23; stu[1].num=20;stu[1].name="ert";stu[1].sex="f";stu[1].age=45; stu[2].num=30;stu[2].name="str";stu[2].sex="t";stu[2].age=89; v.push_back(stu[0]); v.push_back(stu[1]); v.push_back(stu[2]); cout<<"请输入一段字符串:"; gets(ch); char name[40],sex[40]; //姓名 性别 int num,age; //学号 年龄 while(1){ if(ch[0]=='I'){ sscanf(ch,"I%d %s %s %d",&num,name,sex,&age); p.num = num; p.name = name; p.sex = sex; p.age = age; v.push_back(p); }else if(ch[0]=='D'){ sscanf(ch,"D%d",&num); vector<Student>::iterator it; for(it=v.begin();it!=v.end();it++){ if((*it).num==num){ v.erase(it); break; } } } sort(v.begin(),v.end(),Comp); display(v); cout<<"请输入一段字符串:"; gets(ch); } return 0;}
新闻热点
疑难解答