stl list小结

build选项里加上/MT
就是Muti Thread, 在project的build option里

#include "iostream.h"
#include <afx.h>
#include <list>
#include "algorithm"
using namespace std;


struct user{
CString username;
CString password;
int id;
};

//sort函数需要重载<
bool operator<(user &l,user &r)  
{  
return l.id<r.id?1:0;  
}  
//unique函数需要重载==
bool operator==(user &l,user &r)  
{  
if (l.id == r.id)
{
   return 1;
}
return 0;
}
void print(user oneuser)
{
cout<<"username:"<<oneuser.username<<"/t";
cout<<"password:"<<oneuser.password<<"/t";
cout<<"id:"<<oneuser.id<<endl;
}
void main()
{
    list<user> users;//定义一个链表
list<user> users2;//定义另一个链表
user oneuser;
oneuser.username="2";
oneuser.password="2";
oneuser.id=2;
users2.push_back(oneuser);

oneuser.username="1";
oneuser.password="1";
oneuser.id=1;
users.push_back(oneuser);

oneuser.username="3";
oneuser.password="3";
oneuser.id=3;
users.push_back(oneuser);

cout<<"user链表现有的数据:"<<endl;
for_each(users.begin(),users.end(),print);

oneuser.username="3";
oneuser.password="3";
oneuser.id=3;
users.insert(users.begin(),oneuser);

cout<<"insert函数执行后的结果:"<<endl;
for_each(users.begin(),users.end(),print);
   
users.sort();//需要重载<
cout<<"执行sort(排序具体依据重载<)排序后的结果:"<<endl;
for_each(users.begin(),users.end(),print);

users.unique();//需要重载==
cout<<"执行unique(去重复)函数后的结果:"<<endl;
for_each(users.begin(),users.end(),print);


users.reverse();
cout<<"执行reverse(链表逆向)函数后的结果:"<<endl;
for_each(users.begin(),users.end(),print);

users.erase(users.begin());//users.erase(users.begin(),users.end())
cout<<"执行erase(链表删除)函数后的结果:"<<endl;
for_each(users.begin(),users.end(),print);

users.merge(users2);
cout<<"执行merge(两个链表合并)函数后的结果:"<<endl;
for_each(users.begin(),users.end(),print);

users.swap(users2);
cout<<"执行swap(交换两个链表)函数后的结果:"<<endl;
cout<<"users:"<<endl;
for_each(users.begin(),users.end(),print);
cout<<"users2:"<<endl;
for_each(users2.begin(),users2.end(),print);

users.splice(++users.begin(),users2,++users2.begin(),users2.end());
cout<<"执行splice(交换两个链表)函数后的结果:"<<endl;
cout<<"users:"<<endl;
for_each(users.begin(),users.end(),print);
cout<<"users2:"<<endl;
for_each(users2.begin(),users2.end(),print);

cout<<"users链表的最大长度:"<<users.max_size()<<endl;

cout<<"遍历users链表"<<endl;
list<user>::iterator itorusers;
for (itorusers = users.begin();itorusers != users.end();itorusers++)
{
   cout<<"username:"<<itorusers->username<<"/t";
   cout<<"password:"<<itorusers->password<<"/t";
   cout<<"id:"<<itorusers->id<<endl;
}

cout<<"当前users链表的长度:"<<users.size()<<endl;

if (users.empty())
{
   cout<<"stl empty"<<endl;
}
//删除链表
users.clear();
users2.clear();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值