算法请参考STL的实现源码,例子如下
#include "stdafx.h"
#include
#include
#include
int main ()
{
std::list
lstVal1.push_back(1);
lstVal1.push_back(2);
lstVal1.push_back(3);
lstVal2.push_back(3);
lstVal2.push_back(4);
lstVal2.push_back(5);
/// 求链表并集.
std::set_union(lstVal1.begin(), lstVal1.end(), lstVal2.begin(), lstVal2.end(), std::ostream_iterator
std::cout << std::endl;
/// 求链表交集.
std::set_intersection(lstVal1.begin(), lstVal1.end(), lstVal2.begin(), lstVal2.end(), std::ostream_iterator
std::cout << std::endl;
/// 求链表差.
std::set_difference(lstVal1.begin(), lstVal1.end(), lstVal2.begin(), lstVal2.end(), std::ostream_iterator
std::cout << std::endl;
return 0;
}
输出
1 2 3 4 5
3
1 2
请按任意键继续. . .
注意: 参与的链表要求已经按相同的准则排序