91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-09-29 02:57:53 來源:腳本之家 閱讀:206 作者:Leckun 欄目:編程語言

核心代碼

#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("重新進"); 
  } 
} 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德庆县| 东平县| 宜春市| 文水县| 工布江达县| 佛学| 买车| 米易县| 上饶县| 呼玛县| 民乐县| 江陵县| 花莲市| 桂平市| 内丘县| 海阳市| 乳源| 三门峡市| 民勤县| 利辛县| 信宜市| 岚皋县| 鄂托克旗| 平阴县| 台山市| 丰都县| 大埔区| 牙克石市| 岫岩| 河东区| 和田县| 康定县| 惠来县| 沂源县| 镇赉县| 上犹县| 定襄县| 新兴县| 仪征市| 林周县| 庆云县|