国产探花免费观看_亚洲丰满少妇自慰呻吟_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("重新進");   } } 

 

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 出国| 称多县| 余干县| 加查县| 龙门县| 长泰县| 横山县| 吉隆县| 伊通| 广州市| 宜兰县| 剑川县| 恭城| 遂川县| 镇坪县| 陇西县| 涞水县| 文昌市| 东安县| 布尔津县| 高雄县| 温州市| 泸州市| 丁青县| 苏尼特右旗| 巨鹿县| 察雅县| 柳林县| 棋牌| 大姚县| 阿拉善盟| 正阳县| 筠连县| 辽阳县| 容城县| 大庆市| 沭阳县| 玛曲县| 襄城县| 大埔区| 磴口县|