c++数据结构题,急急急急急急啊。。。。在线等。

练习使用STL模板,用STL中的list对象设计如下一个函数删除链表中的所有重复元素并进行验证。... 练习使用STL模板,用STL中的list对象设计如下一个函数删除链表中的所有重复元素并进行验证。 展开
 我来答
wwwgmc
2014-11-14 · TA获得超过321个赞
知道小有建树答主
回答量:247
采纳率:0%
帮助的人:171万
展开全部
#include <list>
#include <iostream>

template <class T>
std::ostream & operator<<(std::ostream & out,const std::list<T> & alist)
{
for(auto iter = alist.begin();iter!=alist.end();++iter)
out<<*iter<<" ";
return out;
}

void delduplicate(std::list<int> &listInt)
{
listInt.sort();
for(auto iter=listInt.begin();iter!=listInt.end();)
{
auto iterTmp=iter++;
if(iter==listInt.end())
break;
if(*iterTmp==*iter)
{
listInt.erase(iterTmp);
}
}
}

void main()
{
std::list<int> listInt;
listInt.push_back(1);
listInt.push_back(1);
listInt.push_back(1);
listInt.push_back(1);
listInt.push_back(2);
listInt.push_back(1);
listInt.push_back(3);
listInt.push_back(4);
listInt.push_back(3);
listInt.push_back(4);
listInt.push_back(5);
listInt.push_back(4);
listInt.push_back(5);
std::cout<<"list为:"<<listInt<<std::endl;
delduplicate(listInt);
std::cout<<"去重后的list为:"<<listInt<<std::endl;
}
更多追问追答
追问
可以改成不用模板的形式吗?拜托啦~   可以在再加一下注释吗  看不太懂
追答
#include <list>
#include <iostream>
void delduplicate(std::list<int> &listInt)//list去重函数
{
if(listInt.empty())
return;
listInt.sort();
std::list<int>::iterator iter=listInt.begin();
while(true)
{
std::list<int>::iterator iterTmp=iter++;//记录相邻的两个元素的前一个元素到iterTmp
if(iter==listInt.end()) //如果相邻的两个元素的后一个元素是链表的结尾,则退出
break;
if(*iterTmp==*iter) //如果相邻的两个元素相等,则删除前一个
{
listInt.erase(iterTmp);
}
}
}
void main()
{
std::list<int> listInt;
listInt.push_back(1); //链表尾插入一个元素
listInt.push_back(1);
listInt.push_back(1);
std::cout<<"去重之前的list为:";
std::list<int>::iterator iter;
for(iter=listInt.begin();iter!=listInt.end();++iter)//打印去重前的list
{
std::cout<<*iter<<" ";
}
std::cout<<std::endl;//换行
delduplicate(listInt);//list去重
std::cout<<"去重后的list为:";
for(iter=listInt.begin();iter!=listInt.end();++iter)//打印去重后的list
{
std::cout<<*iter<<" ";
}
std::cout<<std::endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
loveq888
2014-11-14
知道答主
回答量:23
采纳率:0%
帮助的人:4.7万
展开全部
为什么一定要用List?
用Map就可以解决到你这个问题?
追问
作业要求~
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式