利用stl set_difference对车辆进出区域进行判定
来源:互联网 发布:九阴阴阳倒乱刃淘宝 编辑:程序博客网 时间:2024/05/18 09:18
set_difference,用于求两个集合的差集,结果集合中包含所有属于第一个集合但不属于第二个集合的元素。
#include <iostream> #include <vector> #include <string> #include <algorithm> using namespace std; struct _AREA_VECTOR_STRUCT{int nAreaType;//区域类型int nAreaID;//区域ID};void CtestDlg::OnBnClickedButton2(){vector<_AREA_VECTOR_STRUCT> structAreaHistory;//车辆上一次所在区域vector<_AREA_VECTOR_STRUCT> structAreaNow;//车辆本次所在区域vector<_AREA_VECTOR_STRUCT> OutStructAreaVector;//输出区域_AREA_VECTOR_STRUCT structVehicle;//模拟上一次车辆所在的区域集合structVehicle.nAreaType = 2;structVehicle.nAreaID = 0x45;structAreaHistory.push_back(structVehicle);structVehicle.nAreaID = 0x7A;structAreaHistory.push_back(structVehicle);structVehicle.nAreaID = 0x88;structAreaHistory.push_back(structVehicle);structVehicle.nAreaType = 3;structVehicle.nAreaID = 0x55;structAreaHistory.push_back(structVehicle);structVehicle.nAreaID = 0x88;structAreaHistory.push_back(structVehicle);//模拟本次车辆所在的区域集合structVehicle.nAreaType = 2;structVehicle.nAreaID = 0x88;structAreaNow.push_back(structVehicle);structVehicle.nAreaID = 0x45;structAreaNow.push_back(structVehicle);structVehicle.nAreaID = 0x11;structAreaNow.push_back(structVehicle);structVehicle.nAreaType = 3;structVehicle.nAreaID = 0x55;structAreaNow.push_back(structVehicle);//排序,先按区域类型排序,再按区域ID排序sort(structAreaHistory.begin(), structAreaHistory.end(),[] (_AREA_VECTOR_STRUCT structArea1, _AREA_VECTOR_STRUCT structArea2)->bool{if(structArea1.nAreaType != structArea2.nAreaType)return structArea1.nAreaType < structArea2.nAreaType;elsereturn structArea1.nAreaID < structArea2.nAreaID;});sort(structAreaNow.begin(), structAreaNow.end(),[] (_AREA_VECTOR_STRUCT structArea1, _AREA_VECTOR_STRUCT structArea2)->bool{if(structArea1.nAreaType != structArea2.nAreaType)return structArea1.nAreaType < structArea2.nAreaType;elsereturn structArea1.nAreaID < structArea2.nAreaID;});int a = 0;//求差,结果为离开区域的集合(出区域)set_difference(structAreaHistory.begin(), structAreaHistory.end(), structAreaNow.begin(), structAreaNow.end(), back_inserter(OutStructAreaVector),[](_AREA_VECTOR_STRUCT structArea1, _AREA_VECTOR_STRUCT structArea2)->bool{if(structArea1.nAreaType != structArea2.nAreaType)return structArea1.nAreaType < structArea2.nAreaType;elsereturn structArea1.nAreaID < structArea2.nAreaID;});if(OutStructAreaVector.size() != 0){TRACE("出");}OutStructAreaVector.clear();//先清空//反过来求差,结果为新进入的区域集合(新进区域)set_difference(structAreaNow.begin(), structAreaNow.end(), structAreaHistory.begin(), structAreaHistory.end(), back_inserter(OutStructAreaVector),[](_AREA_VECTOR_STRUCT structArea1, _AREA_VECTOR_STRUCT structArea2)->bool{if(structArea1.nAreaType != structArea2.nAreaType)return structArea1.nAreaType < structArea2.nAreaType;elsereturn structArea1.nAreaID < structArea2.nAreaID;});if(OutStructAreaVector.size() != 0){TRACE("重新进");}}
0 0
- 利用stl set_difference对车辆进出区域进行判定
- 利用Matlab自带的深度学习工具进行车辆区域检测与车型识别【Github更新!!!】(三)
- 利用MATLAB进行车辆的速度测量
- 利用辛达拉姆筛进行素数判定
- 利用辛达拉姆筛进行素数判定
- 对车辆停止距离进行建模
- stl中的set_difference的使用
- STL set_difference set_intersection set_union 操作
- 利用Matlab自带的深度学习工具进行车辆区域检测与车型识别【福利-内附源码与数据库】(一)
- 利用Matlab自带的深度学习工具进行车辆区域检测与车型识别【福利-内附源码与数据库】(二)
- set_difference()
- set_difference
- set_difference
- C++ STL merge,set_union,set_intersection,set_difference,set_symmetric_difference
- STL 之includes,set_intersection,set_union,set_difference,set_symmetric_difference
- STL algorithm算法set_difference,set_intersection(53)
- STL 之includes,set_intersection,set_union,set_difference,set_symmetric_difference
- STL之set_union、set_intersection、set_difference、set_symmetric_difference
- onTouch()和onTouchEvent()
- HEVC学习 —— HM的使用
- oracle数据库rman备份步骤
- 通向架构师的道路(第五天)之tomcat集群-群猫乱舞
- LTE资源调度(7)-DRX不连续接收(1)
- 利用stl set_difference对车辆进出区域进行判定
- 了解elasticsearch搜索引擎
- ServerSocket 用法详解
- 安卓碎片使用心得
- SGU 180 Inversions <一维树状数组区间查询>
- 百度短网址
- 一个关于单引号和null和大坑
- 所谓SEO,除了技术需要的还有脑洞大开
- SQLiteOpenHelper使用详解