C++入门必看之关于List容器的使用

大家好!这里是一个分享知识的小同学 ,希望能和大家一起探讨,学习!

今天我们将来初步的认识list容器的使用;

我查看了一下网上的资料,普遍显得较难理解,因此本人整理了以下代码供大家初学者学习。

问题如下:用list容器来管理一个班级学生的成绩,要求能够实现下列功能:

1)、增加学生成绩

2)、查找学生成绩

3)、对学生成绩进行排序

我们用观察代码的形式来更快的促进记忆和运用。

#include<iostream>
#include<list>
#include<iterator>
#include<functional>
#include<numeric>
#include<algorithm>
using namespace std;
void _print(list<double> &lt)
{

    list<double>::iterator it;
    for(it = lt.begin();it!=lt.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;

}
int main()
{
list<double>lt;
cout<<"请输入学生的成绩,(-1)结束输入:"<<endl;
double score;
while(1)
{
    cin>>score;
    if(score==-1)break;
    else if (score<0||score>100){cout<<"请输入正确的成绩"<<endl;
    continue;}
    lt.push_back(score);

}
lt.sort();
cout<<"学生成绩由小到大排序:"<<endl;
_print(lt);
double cnum;
cout<<"请输入要插入的成绩"<<endl;
cin>>cnum;
for(list<double>::iterator it=lt.begin();it!=lt.end();it++)
{
    if(*it>=cnum){
        lt.insert(it,cnum);break;
           }

        
}
cout<<"插入元素后:"<<endl;
_print(lt);
int count=0;
double num;
cout<<"请输入要查找的成绩"<<endl;
cin>>num;
list<double>::iterator itf=find(lt.begin(),lt.end(),num);
if(itf==lt.end())
cout<<num<<"分的成绩不存在"<<endl;
else 
{
    cout<<num<<"分的成绩存在"<<endl;
    for(list<double>::iterator it=lt.begin();it!=lt.end();it++)
    {
        if(*it==num)
        count++;
    }
    cout<<"且共有"<<count<<"个成绩为"<<num<<"的学生"<<endl;
  

}
double tnum;
cout<<"如果要删除低于某一分数的成绩,请输入删除标准:"<<endl;
cin>>tnum;
list<double>::iterator it;
for(it =lt.begin();it!=lt.end();it++)
{
if(*it>=tnum)
{
    lt.erase(lt.begin(),it);
    cout<<"删除低于"<<tnum<<"的分数后"<<endl;
    _print(lt);
    break;
}
if(tnum>*(--lt.end()))
{
    lt.clear();
    cout<<"删除低于"<<tnum<<"的分数后,容器为空"<<endl;
    break;

}
}


}

通过上述的代码我们可以非常清除的了解到关于容器以及迭代器的使用,相信大家对容器也就有了更深的了解。

看到这的读者朋友给孩子点个赞吧-_-。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值