关于 C++ list 一些使用

本文详细介绍了C++中STL列表的使用方法,包括插入、删除、查找元素以及如何通过重载运算符来简化操作过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>
#include <iomanip>
#include <algorithm>
#include <cstring>
#include <list> 
#include <stdio.h>
#include <string.h>
typedef struct _STU
{
 int id;
 char name[10];
  bool operator==(const _STU&);//用remove要重载==,除非是内置函数
}STU;
bool STU::operator==(const _STU &stu )
{
 if(stu.id==id)
  if(strcmp(stu.name,name)==0)
   return true;
 return false;
}
typedef std::list<STU> LSTU;
LSTU m_list_stu;
std::list<STU>::iterator itl_stu;
void insert(STU node)
{
 //m_list_stu.push_front(node);
 itl_stu=m_list_stu.begin();
 itl_stu++;
 m_list_stu.insert(itl_stu,node);
}
void del(const STU &node)
{
 /*itl_stu=m_list_stu.begin();
 while(itl_stu!=m_list_stu.end())
 {
  if(itl_stu->id==node.id)
  {
   itl_stu=m_list_stu.erase(itl_stu);
   break;
  }
  itl_stu++;
 }
 */
 //std::list <int> L_int;
// int tb = 89;
 //L_int.remove(tb);
 m_list_stu.remove(node);
 //m_list_stu.erase(m_list_stu.begin(),m_list_stu.end());
 
}
int find(char * name)
{
 itl_stu=m_list_stu.begin();
 while(itl_stu!=m_list_stu.end())
 {
  if(strcmp(itl_stu->name,name)==0)
   break;
  itl_stu++;
 }
 return itl_stu->id;
}
void sort_maopao(LSTU &S_stu)
{
 for(LSTU::iterator i=S_stu.begin();i!=S_stu.end();i++)
  for(std::list<STU>::iterator j=i;j!=S_stu.end(); )
  {
   j++;
   if(i->id < j->id)
   {
    int tmp_i=0;
    char tmp_n[10]="";
    tmp_i=i->id;
    i->id=j->id;
    j->id=tmp_i;
    memcpy(tmp_n,i->name,sizeof(tmp_n));
    memcpy(i->name,j->name,sizeof(i->name));
    memcpy(j->name,tmp_n,sizeof(j->name));
   }
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值