国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

c++利用stl set_difference對車輛進出區域進行判定

2020-05-23 13:48:18
字體:
來源:轉載
供稿:網友

核心代碼

#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;     else       return 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;     else       return 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;     else       return 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;     else       return structArea1.nAreaID < structArea2.nAreaID;      });    if(OutStructAreaVector.size() != 0)   {     TRACE("重新進");   } } 

 

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 敖汉旗| 嘉荫县| 霸州市| 类乌齐县| 平阴县| 张北县| 大田县| 固原市| 威海市| 丁青县| 厦门市| 左贡县| 广元市| 阳江市| 巩义市| 新乐市| 波密县| 铁力市| 南雄市| 鞍山市| 施甸县| 上犹县| 天峨县| 石嘴山市| 调兵山市| 渑池县| 姚安县| 乌兰县| 景宁| 化隆| 虎林市| 怀仁县| 来宾市| 姜堰市| 原平市| 育儿| 和龙市| 潼关县| 梓潼县| 平南县| 海口市|