找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1822|回复: 0
打印 上一主题 下一主题
收起左侧

链表迭代

[复制链接]
跳转到指定楼层
楼主
ID:104287 发表于 2016-1-31 02:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
// a005.cpp : 定义控制台应用程序的入口点。

//
//链表list<content> l;实质上指向content变量类型的指针,二迭代器就是一个指向链表各个位置的一个指针。所以,
//链表是一个指针,迭代器是一个指向指针的指针的指针。即双重指针。
#include "stdafx.h"
#include <string>
#include <iostream>
#include <list>
#include <algorithm>
#include <iterator>
using namespace std;
class cl1
{
public:
        char name[20];int age;
        cl1(char name[20],int age)
        {
                this->age=age;
                strcpy(this->name,name);
        }
};

int _tmain(int argc, _TCHAR* argv[])
{
       
        list<cl1*> l; //申请类指针为成员的链表
        for(; ;)
        {
        char name[20];
        int age;
        scanf("%s",&name);
        scanf("%d",&age);
        cl1*p1=new cl1(name,age);
        l.push_back(p1);   //把类指针加入链表
        int tem;
        printf("1->YES 2->NO");
        scanf("%d",&tem);
        if(tem==2){break;}       
        }
        list<cl1*>::iterator it=l.begin(); //申请类指针类型的迭代器,并指向链表的begin位置
        while(it != l.end())
        {
                printf("%s--%d--",(*it)->name,(*it)->age);//迭代器本质上是一个指针。在这儿指向链表
                it++;
        }
        it=l.begin();
        while(it!=l.end()) //当迭代器不是指向最后一个是-----------------------------------|
        {                                //                                                                                                |
        delete(*it);//<-----清空迭代器内容。即链表,即cl1的指针,即清空cl1的内存----------|
        it++;
        }
        l.clear();
        return 0;
}



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表