STL排序链表

例子1:

#include<iostream>
#include<string>//对字符串操作
#include<list>//STL对数据结构中的双向链表类操作
using namespace std;
int main()
{
string s;
list<string>LS;
list<string>::iterator iter;//迭代器
while(true){//表面看起来似乎 没用,其实是可控的循环与break联合使用 
cout<<"Enter string until enter"<<endl;
getline(cin,s);
if(s.size()==0)
 break;//循环结束的条件 
LS.push_back(s);//在末尾添加元素。(将字符串压入链表,按照正常顺序存储) 
//LS.push_front(s)//在开头添加元素。 
}
cout<<"开始的顺序:"<<endl;
for(iter=LS.begin();iter!=LS.end();iter++)
 cout<<*iter<<endl;//遍历器遍历输出
LS.sort();//排序
cout<<"排序后的顺序:"<<endl;
for(iter=LS.begin();iter!=LS.end();iter++)//遍历器最后到达链表节点的后一个位置(END)
 cout<<*iter<<endl;//遍历器遍历输出
system("pause");
return 0;
}



例子2:

#include<iostream>
#include<string>//对字符串操作
#include<list>//STL对链表类操作,立即分配了若干链表空间,等待输入数据 
using namespace std;
int main()
{
string s;
list<string>LS;
list<string>::iterator iter;//遍历器 
while(true){//表面看起来似乎 没用,其实是可控的循环与break联合使用 
cout<<"Enter string until enter"<<endl;
getline(cin,s);
if(s.size()==0)
 break;//循环结束的条件 
iter=LS.begin();//首次有元素插入的时候,iter==LS.end()==LS.begin() 
while(iter!=LS.end())
{
if(s>*iter)
 iter++;
else
 break;
}
//循环结束:1)iter==SL.end() 2)s<*iter
LS.insert(iter,s);//将s插入iter之前 ,包含了将数据s写入链表空间并插入的功能 
/*********第二种插入方法 **************
for(iter=LS.begin();iter!=LS.end()&&s>*iter;)
 iter++;
LS.insert(iter,s);
************************************/
}
cout<<"顺序:"<<endl;
for(iter=LS.begin();iter!=LS.end();iter++)//遍历器最后到达链表节点的后一个位置(END)
 cout<<*iter<<endl;//遍历器遍历输出
system("pause");
return 0;
}







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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值