class AP {
public:
AP():
BSSID(""),
SSID(""),
PASSWORD(""),
LinkStatus(eWifiAPLinkStatus_UnConnected),
AuthType(eWifiSecurityType_Unknown),
SignalLevel(eWifiAPSignalStrength_level0),
Remembered(eWifiRememberedAP_Unknown) {}
AP(std::string ssid, WifiSecurityType authType, std::string password);
AP(std::string bssid, std::string ssid, WifiAPSignalStrength sigLev,WifiSecurityType authType,int SignalDB);
AP(std::string ssid, WifiAPSignalStrength sigLev,WifiSecurityType authType,int SignalDB);
AP &operator=(const AP &);
AP(const AP &);
std::string BSSID;
std::string SSID;
std::string PASSWORD;
WifiAPLinkStatus LinkStatus;
WifiSecurityType AuthType; /// PasswordProtected is defined in patac's Proto
WifiAPSignalStrength SignalLevel;
int SignalDB;
WifiRememberedAP Remembered;
std::string getBSSID() const;
void setBSSID(const std::string &value);
std::string getSSID() const;
void setSSID(const std::string &value);
std::string getPASSWORD() const;
void setPASSWORD(const std::string &value);
WifiAPLinkStatus getLinkStatus() const;
void setLinkStatus(const WifiAPLinkStatus &value);
WifiSecurityType getAuthType() const;
void setAuthType(const WifiSecurityType &value);
WifiAPSignalStrength getSignalLevel() const;
void setSignalLevel(const WifiAPSignalStrength &value);
WifiRememberedAP getRemembered() const;
void setRemembered(const WifiRememberedAP &value);
int getSignalDB() const;
void setSignalDB(int value);
};
std::ostream& operator<<(std::ostream &output, const AP &D);
std::vector ScanAps;
AP is class that has a getter function(among others functions) getSignalDB to return an int:
My question is :
std::sort(ScanAps.begin(),ScanAps.end(),
[](const AP &m, const AP &n)-> bool{return
m.getSignalDB() < n.getSignalDB(); });
...will sometimes crash the whole process, but
std::stable_sort(ScanAps.begin(),ScanAps.end(),
[](const AP &m, const AP &n)-> bool{return
m.getSignalDB() < n.getSignalDB(); });
...won't. And both sort take no effect:
PRINT_ELEMENTS(ScanAps,"AFTER SORT ScanAps IS :\n");
Print Results is (when not crash, attention to last col):
BSSID:fc:8b:97:5c:c1:fd SSID:dlink PASSWORD: LINKSTAUS:2 SignalDB:-57
BSSID:cc:d5:39:5d:d4:b0 SSID:YFVEGROUP PASSWORD: LINKSTAUS:2 SignalDB:-70
BSSID:fc:8b:97:5c:e7:3c SSID:dlink_mwang PASSWORD: LINKSTAUS:2 SignalDB:-73
BSSID:5c:63:bf:73:e9:6a SSID:eagle_link PASSWORD: LINKSTAUS:2 SignalDB:-46
BSSID:cc:d5:39:9e:30:b0 SSID:YFVEGROUP PASSWORD: LINKSTAUS:2 SignalDB:-49
BSSID:00:36:76:1c:ab:3f SSID:360WiFi-AB3F PASSWORD: LINKSTAUS:2 SignalDB:-54
BSSID:fc:8b:97:5c:bb:40 SSID:dlink_wj PASSWORD: LINKSTAUS:2 SignalDB:-57
BSSID:fc:8b:97:5c:e8:9f SSID:ARCH-HP_Network PASSWORD: LINKSTAUS:2 SignalDB:-62
BSSID:fc:8b:97:5c:d8:3c SSID:dlink_sammu PASSWORD: LINKSTAUS:2 SignalDB:-71
BSSID:cc:d5:39:9e:30:be SSID:YFVEGUEST PASSWORD: LINKSTAUS:2 SignalDB:-58
BSSID:cc:d5:39:e3:3c:00 SSID:YFVEGROUP PASSWORD: LINKSTAUS:2 SignalDB:-62
BSSID:cc:d5:39:9e:30:bf SSID:YFVEGROUP PASSWORD: LINKSTAUS:2 SignalDB:-75
BSSID:98:ff:d0:b4:07:2a SSID:Lenovo A375e PASSWORD: LINKSTAUS:2 SignalDB:-62
BSSID:fc:8b:97:5c:df:0d SSID:Matthew PASSWORD: LINKSTAUS:2 SignalDB:-80
BSSID:cc:d5:39:e3:3c:01 SSID:YFVEGUEST PASSWORD: LINKSTAUS:2 SignalDB:-73
BSSID:3c:df:bd:dd:fd:d3 SSID:Alex3G PASSWORD: LINKSTAUS:2 SignalDB:-67
BSSID:b8:a3:86:87:fe:b6 SSID:D-Link_DIR-600A PASSWORD: LINKSTAUS:2 SignalDB:-82
BSSID:cc:d5:39:9e:b0:b0 SSID:YFVEGROUP PASSWORD: LINKSTAUS:2 SignalDB:-94
BSSID:fc:8b:97:5c:c6:03 SSID:dlink_xlv1 PASSWORD: LINKSTAUS:2 SignalDB:-82
BSSID:cc:d5:39:9e:b0:b1 SSID:YFVEGUEST PASSWORD: LINKSTAUS:2 SignalDB:-94