最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c++利用stl set_difference對(duì)車(chē)輛進(jìn)出區(qū)域進(jìn)行判定

 更新時(shí)間:2017年03月13日 22:32:28   作者:Leckun  
這篇文章主要介紹了set_difference,用于求兩個(gè)集合的差集,結(jié)果集合中包含所有屬于第一個(gè)集合但不屬于第二個(gè)集合的元素,需要的朋友可以參考下

核心代碼

#include <iostream>  
#include <vector>  
#include <string>  
#include <algorithm>  
using namespace std;  
struct _AREA_VECTOR_STRUCT 
{ 
  int nAreaType;//區(qū)域類(lèi)型 
  int nAreaID;//區(qū)域ID 
}; 
 
void CtestDlg::OnBnClickedButton2() 
{ 
  vector<_AREA_VECTOR_STRUCT> structAreaHistory;//車(chē)輛上一次所在區(qū)域 
  vector<_AREA_VECTOR_STRUCT> structAreaNow;//車(chē)輛本次所在區(qū)域 
  vector<_AREA_VECTOR_STRUCT> OutStructAreaVector;//輸出區(qū)域 
 
  _AREA_VECTOR_STRUCT structVehicle; 
 
  //模擬上一次車(chē)輛所在的區(qū)域集合 
  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); 
 
  //模擬本次車(chē)輛所在的區(qū)域集合 
  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); 
 
  //排序,先按區(qū)域類(lèi)型排序,再按區(qū)域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; 
 
  //求差,結(jié)果為離開(kāi)區(qū)域的集合(出區(qū)域) 
  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();//先清空 
 
  //反過(guò)來(lái)求差,結(jié)果為新進(jìn)入的區(qū)域集合(新進(jìn)區(qū)域) 
  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("重新進(jìn)"); 
  } 
} 

相關(guān)文章

  • C語(yǔ)言版簡(jiǎn)單掃雷游戲

    C語(yǔ)言版簡(jiǎn)單掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言版簡(jiǎn)單掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • C語(yǔ)言實(shí)現(xiàn)共享單車(chē)管理系統(tǒng)

    C語(yǔ)言實(shí)現(xiàn)共享單車(chē)管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)共享單車(chē)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C語(yǔ)言lseek()函數(shù)詳解

    C語(yǔ)言lseek()函數(shù)詳解

    這篇文章主要介紹了C語(yǔ)言lseek()函數(shù)詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • c語(yǔ)言double類(lèi)型默認(rèn)輸出小數(shù)幾位

    c語(yǔ)言double類(lèi)型默認(rèn)輸出小數(shù)幾位

    在本篇文章里小編給大家分享的是關(guān)于c語(yǔ)言double類(lèi)型默認(rèn)輸出小數(shù)幾位的相關(guān)知識(shí)點(diǎn),需要的朋友們可以學(xué)習(xí)下。
    2020-04-04
  • C++實(shí)現(xiàn)中值濾波的示例代碼

    C++實(shí)現(xiàn)中值濾波的示例代碼

    本文主要介紹了C++實(shí)現(xiàn)中值濾波的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • C++利用stringstream進(jìn)行數(shù)據(jù)類(lèi)型轉(zhuǎn)換實(shí)例

    C++利用stringstream進(jìn)行數(shù)據(jù)類(lèi)型轉(zhuǎn)換實(shí)例

    這篇文章主要介紹了C++利用stringstream進(jìn)行數(shù)據(jù)類(lèi)型轉(zhuǎn)換的方法,實(shí)例分析了使用stringstream進(jìn)行string轉(zhuǎn)int的操作技巧,需要的朋友可以參考下
    2015-01-01
  • C++初階學(xué)習(xí)之模板進(jìn)階

    C++初階學(xué)習(xí)之模板進(jìn)階

    這篇文章主要為大家介紹了C++模板進(jìn)階,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • C/C++函數(shù)調(diào)用棧的實(shí)現(xiàn)方法

    C/C++函數(shù)調(diào)用棧的實(shí)現(xiàn)方法

    這篇文章主要介紹了C/C++函數(shù)調(diào)用棧的實(shí)現(xiàn)方法,可實(shí)現(xiàn)一個(gè)簡(jiǎn)單的腳本解釋器,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-10-10
  • C++實(shí)現(xiàn)LeetCode(228.總結(jié)區(qū)間)

    C++實(shí)現(xiàn)LeetCode(228.總結(jié)區(qū)間)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(228.總結(jié)區(qū)間),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++語(yǔ)言實(shí)現(xiàn)線性表之?dāng)?shù)組實(shí)例

    C++語(yǔ)言實(shí)現(xiàn)線性表之?dāng)?shù)組實(shí)例

    這篇文章主要介紹了C++語(yǔ)言實(shí)現(xiàn)線性表之?dāng)?shù)組,實(shí)例分析了C++實(shí)現(xiàn)數(shù)組形式線性表的原理與方法,需要的朋友可以參考下
    2015-04-04

最新評(píng)論

宁安市| 翁源县| 奎屯市| 华池县| 肥东县| 石屏县| 邮箱| 滕州市| 金昌市| 安新县| 西乌珠穆沁旗| 松潘县| 册亨县| 巫山县| 靖远县| 广水市| 遂昌县| 太仓市| 长白| 黄平县| 武平县| 大宁县| 西宁市| 临高县| 饶阳县| 龙里县| 聊城市| 龙口市| 博湖县| 洞头县| 连南| 黔西县| 韶山市| 秀山| 姚安县| 永新县| 宾阳县| 临夏县| 三河市| 偃师市| 元江|