首页 > 其他分享 >迭代器模式

迭代器模式

时间:2024-12-29 22:11:19浏览次数:1  
标签:ivec 迭代 iterator iter vector 模式 infile

实验18:迭代器模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 

1、理解迭代器模式的动机,掌握该模式的结构;

2、能够利用迭代器模式解决实际问题。

 

[实验任务一]:JAVA和C++常见数据结构迭代器的使用

 

信1305班共44名同学,每名同学都有姓名,学号和年龄等属性,分别使用JAVA内置迭代器和C++中标准模板库(STL)实现对同学信息的遍历,要求按照学号从小到大和从大到小两种次序输出学生信息。

 

1. 搜集并掌握JAVA和C++中常见的数据结构和迭代器的使用方法,例如,vector, list, map和set等;

 

每种容器都定义了本身的迭代器类型,如vector:spa

 

vector<int>::iterator    iter;    //定义一个名为iter的变量

 

  每种容器都定义了一对名为begin和en的函数,用于返回迭代器。下面对迭代器进行初始化操做:指针

 

vector<int>    ivec;vector<int>::iterator    iter1=ivec.bengin();    //将迭代器iter1初始化为指向ivec容器的第一个元素vector<int>::iterator   iter2=ivec.end();    //将迭代器iter2初始化为指向ivec容器的最后一个元素的下一个位置

2.源代码

#include <string>
#include <vector>
#include <iostream>
#include <fstream>
using namespace std;
struct student
{
    string id;
    string name;
};
void LoadStudent(vector<student>&);
int main()
{
    vector<student> v,v1;
    LoadStudent(v);
    LoadStudent(v1);
    cout<<"学号从小到大:"<<endl;
    for (vector<student>::iterator iter = v.begin(); iter != v.end(); ++iter)
    {
        cout << "学号:" << iter->id << "  姓名:" << iter->name << endl;
    }
    cout<<"***********************"<<endl;
    cout<<"学号从大到小:"<<endl;
    for (vector<student>::reverse_iterator iter1 = v.rbegin(); iter1 != v.rend(); ++iter1)
    {
        cout << "学号:" << iter1->id << "  姓名:" << iter1->name << endl;
    }
    return 0;
}
void LoadStudent(vector<student>& v)
{
    ifstream infile;
    infile.open("E:\\student.txt");
    student s;
    if(!infile)     //判断是否存在ifstream infile
    {
        cout<<"读入文件不存在"<<endl;
    }
    if (infile.is_open())   //判断文件流是否处于打开状态
    {
        while (infile.good()&&!infile.eof())
        {
            infile>>s.id>>s.name;
            v.push_back(s);    //将数据读入到data_vector
        }
    }
    infile.close();
}

 

  

 

标签:ivec,迭代,iterator,iter,vector,模式,infile
From: https://www.cnblogs.com/pinganxile/p/18639656

相关文章

  • 中介者模式
    实验19:中介者模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解中介者模式的动机,掌握该模式的结构;2、能够利用中介者模式解决实际问题。 [实验任务一]:虚拟聊天室 在“虚拟聊天室”实例中增加一个新的具体聊天室类和一个新的具体会员类,要求如下: 1.......
  • 备忘录模式
    实验 20:备忘录模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解备忘录模式的动机,掌握该模式的结构;2、能够利用备忘录模式解决实际问题。 [实验任务一]:多次撤销 改进课堂上的“用户信息操作撤销”实例,使得系统可以实现多次撤销(可以使用HashMap、Array......
  • 观察者模式
    实验21:观察者模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解观察者模式的动机,掌握该模式的结构;2、能够利用观察者模式解决实际问题。[实验任务一]:股票提醒当股票的价格上涨或下降5%时,会通知持有该股票的股民,当股民听到价格上涨的消息时会买股票,当价格下......
  • 装饰模式
    实验11:装饰模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解装饰模式的动机,掌握该模式的结构;2、能够利用装饰模式解决实际问题。[实验任务]:手机功能的升级用装饰模式模拟手机功能的升级过程:简单的手机(SimplePhone)在接收来电时,会发出声音提醒主人;而JarPhone......
  • 单例模式
    实验7:单例模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解单例模式的动机,掌握该模式的结构;2、能够利用单列模式解决实际问题。[实验任务一]:学号的单一仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。类图  源代码publicclassStuden......
  • 适配器模式
    实验八适配器模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解适配器模式的动机,掌握该模式的结构;2、能够利用适配器模式解决实际问题。[实验任务一]:双向适配器实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。类图源代码publicinterfaceDog{......
  • 桥接模式
    实验9:桥接模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解桥接模式的动机,掌握该模式的结构;2、能够利用桥接模式解决实际问题。[实验任务一]:两个维度的桥接模式用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。类图源代......
  • 外观模式
    实验12:外观模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解外观模式的动机,掌握该模式的结构;2、能够利用外观模式解决实际问题。[实验任务一]:计算机开启在计算机主机(Mainframe)中,只需要按下主机的开机按钮(on()),即可调用其他硬件设备和软件的启动方法,如......
  • 工厂方法模式
    目前常用的加密算法有DES(DataEncryptionStandard)和IDEA(InternationalDataEncryptionAlgorithm)国际数据加密算法等,请用工厂方法实现加密算法系统。实验要求:1.画出对应的类图;2.提交该系统的代码,该系统务必是一个可以能够直接使用的系统,查阅资料完成相应加密算法的实现;3.注......
  • 抽象工厂模式
    使用抽象工厂模式,完成下述产品等级结构:  1. 画出对应的类图;   2. 提交源代码;publicinterfaceSkin{    voidshow();}publicinterfaceGender{    voidshow();}publicinterfaceHumanFactory{    SkincreateSkin();    GendercreateG......