上述程序的功能是在输入的一系列整数中删除给定的整数。参考及修改代码使得
(1) 使得该程序自动删除输入整数中所有重复的数据
即: 原始程序运行示例:
输入 10 9 5 4 2 5 7 9 6 3
请输入需要删除的整数: 5
运行结果:
10 9 4 2 7 9 6 3
修改后程序自动输出结果为:
10 9 5 4 2 7 6 3
有什么办法能在不改变序列的情况下去重的吗 谢谢!
#include <iostream>
#include <list>
using namespace std;
int main(void)
{
list<int> Link; // 构造一个列表用于存放整数链表
int i, key, item;
for (i=0;i < 10;i++) // 输入10个整数依次向表头插入
{
cin>>item;
Link.push_front(item);
}
cout << "List: "; // 输出链表
list<int>::iterator p=Link.begin(); //迭代器P用于遍历链表
while(p!=Link.end()) // 输出各节点数据,直到链表尾
{
cout <<*p << " ";
p++; // 使P指向下一个节点
}
cout << endl;
cout << "请输入一个需要删除的整数: "; // 输入需要删除的整数
cin >> key;
Link.remove(key);
cout << "List: "; // 输出链表
p=Link.begin(); // 使P重新指向表头
while(p!=Link.end()) // 输出各节点数据,直到链表尾
{
cout <<*p << " ";
p++; // 使P指向下一个节点
}
cout << endl;
return 0;
}