c++ STL模板库 list的使用

#include"stdafx.h"
#include<list>
#include<iostream>

using namespace std;

typedef struct {
	int  number;
	bool sex;
	char name[20];
}Student;



list <Student> cl;    //链表中的元素为 STUDENT结构类型
list <Student>::iterator cl_Iter;      //为链表申明一个迭代器  用来遍历此链表 

void PrintData()
{
	//获取头结点   用一个迭代器来遍历链表 
	cl_Iter = cl.begin();

	//遍历所有结点
	for (cl_Iter; cl_Iter != cl.end(); cl_Iter++)
	{
		//cl_Iter指针 指向给定的结构体
		cout << "当前结点数据" << "学号 " << cl_Iter->number << " 性别 " << (cl_Iter->sex?"男":"女" )<< " 名字 "<< cl_Iter->name << endl;

	}

}

void Delete(int number)
{
	//获取头结点   用一个迭代器来遍历链表 
	cl_Iter = cl.begin();

	//遍历所有结点
	for (cl_Iter; cl_Iter != cl.end(); cl_Iter++)
	{

		//如果结点数据等于要删除的数据  调用删除函数
		if (number == cl_Iter->number)
		{
			cl.erase(cl_Iter);
			break;
		}
	}
}

//通过学号排序
bool SoftBynumber(Student &s1,Student &s2)
{
	return s1.number < s2.number;
}

int main(int argc, char* argv[])
{  
	
	
	//向链表头部添加数据
	Student Student1 = { 5, 0, "张三" };
	Student Student2 = { 9, 0, "李四" };
	Student Student3 = { 4, 1, "王英" };
	cl.push_front(Student1);
	cl.push_front(Student2);
	cl.push_front(Student3);

	PrintData();

	//排序 
	cl.sort(SoftBynumber);
	cout << "******* 排序后的数据为  *******" << endl;
	PrintData();

	/* 删除指定结点的数据 */
	Delete(5);

	cout << "******* 删除后的数据为  *******"<< endl;
	PrintData();


	getchar();
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值