`
raojl
  • 浏览: 204802 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

std::set得交集应用[笔记]

阅读更多
1、比如一些电话号码比较,如果文件比较大考虑插桩!
2、时间段重叠运算。
3、数据变化处理。
#include "stdafx.h"
#include <set>
#include <string>
#include <algorithm>
#include <iostream>

using namespace std;

struct compare
{
	bool operator ()(string s1,string s2)
	{
	   return s1 > s2;
	}///自定义一个仿函数
};
int main()
{
	typedef std::set<string,compare> _SET;
	_SET s;
	s.insert(string("sfdsfd"));
	s.insert(string("apple"));
	s.insert(string("english"));
	s.insert(string("dstd"));
	cout<<"s1:"<<endl;
	std::set<string,compare>::iterator it = s.begin();
	while(it!=s.end())
	   cout<<*it++<<"   ";
	cout<<endl<<"s2:"<<endl;
	_SET s2;
	s2.insert(string("abc"));
	s2.insert(string("apple"));
	s2.insert(string("english"));
	it = s2.begin();
	while(it!=s2.end())
	   cout<<*it++<<" ";
	cout<<endl<<endl;

	string str[10];
	string *end = set_intersection(s.begin(),s.end(),s2.begin(),s2.end(),str,compare());
	cout<<"result of set_intersection s1 <> s2:"<<endl;
	string *first = str;
	while(first<end)
    cout <<*first++<<" ";
	cout <<endl;
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics