找出数组中不重复的数-Java https://blog.csdn.net/d12345678a/article/details/54233795
【剑指offer】找出数组中任意重复的数字(不修改数组),C++实现 https://www.cnblogs.com/wanglei5205/p/9030151.html
C/C++面试之算法系列--去除数组中的重复数字 https://www.cnblogs.com/Zblogs/archive/2013/10/26/3388869.html
实际应用,斗地主找出单牌
VOID CGameLogic::GetAllSingleCard2(BYTE const cbHandCardData[], BYTE const cbHandCardCount, BYTE cbSingleCardData[], BYTE &cbSingleCardCount)
{
std::map<BYTE, BYTE>temp;
//扑克分析
for (BYTE i = 0; i < cbHandCardCount; i++)
{
BYTE cbLogicValue = GetCardLogicValue(cbHandCardData[i]);
if(temp.find(cbLogicValue) == temp.end()){
temp[cbLogicValue] = cbHandCardData[i]; //不重复的记原值
}else {
temp[cbLogicValue] = 0; //重复记特殊值0
}
}
cbSingleCardCount = 0;
for (std::map<BYTE, BYTE>::iterator itr = temp.begin(); itr != temp.end(); itr++){
if(itr->second != 0 ){
cbSingleCardData[cbSingleCardCount++] = itr->second;
}
}
}