vstemplatelib.h
来自「天之炼狱1服务器端源文件游戏服务端不完整」· C头文件 代码 · 共 159 行
H
159 行
//////////////////////////////////////////////////////////////////////////////// Filename : VSTemplateLib.h// Written by : excel96// Description : //////////////////////////////////////////////////////////////////////////////#ifndef __VSTEMPLATELIB_H__#define __VSTEMPLATELIB_H__#include <iostream>#include <list>#include <stdlib.h>#include <sys/time.h>#include <time.h>using namespace std;template<class T>class UniqueSet{public: UniqueSet(unsigned int maxSize=100); ~UniqueSet();public: unsigned int getMaxSize(void) { return m_MaxSize; } unsigned int getCurSize(void) { return m_CurSize; } unsigned int insert(const T value); unsigned int pick(unsigned int size, list<T>& resultList); unsigned int pick(unsigned int size, vector<T>& resultVector);protected: unsigned int m_MaxSize; unsigned int m_CurSize; T* m_pData;};template<class T>UniqueSet<T>::UniqueSet(unsigned int maxSize){ m_pData = new T[maxSize]; m_MaxSize = maxSize; m_CurSize = 0;}template<class T>UniqueSet<T>::~UniqueSet(){ if (m_pData != NULL) { delete [] m_pData; m_pData = NULL; }}template<class T>unsigned int UniqueSet<T>::insert(const T value){ if (m_CurSize >= m_MaxSize) { cerr << "UniqueSet::insert() : Max Size Exceeded" << endl; return m_MaxSize + 1; } m_pData[m_CurSize] = value; m_CurSize++; return m_CurSize;}template<class T>unsigned int UniqueSet<T>::pick(unsigned int size, list<T>& resultList){ // 泅犁 啊瘤绊 乐绰 单捞鸥狼 箭磊啊 夸备等 单捞磐 箭磊焊促 利促搁, // 啊瘤绊 乐绰 单捞磐 葛滴甫 搬苞 府胶飘俊促 笼绢持绊 府畔茄促. if (size >= m_CurSize) { for (unsigned int i=0; i<m_CurSize; i++) { resultList.push_back(m_pData[i]); } } // 酒聪扼搁 泅犁 啊瘤绊 乐绰 单捞鸥 吝狼 老何甫 夸备等 箭磊父怒 // 搬苞 府胶飘俊促 淬酒辑 府畔茄促. else { // 酒贰 舅绊府硫狼 琴缴篮 促澜苞 鞍促. // N俺狼 单捞鸥啊 乐栏搁 % 楷魂磊甫 烹秦 弊 吝狼 窍唱甫 惶酒辰促. // 单捞磐甫 搬苞俊 器窃矫淖促搁, 弊 单捞磐客 傈眉 单捞磐 吝狼 // 付瘤阜 单捞磐, 溜 N-1锅狼 单捞磐甫 胶恳茄促. 弊 促澜 N阑 1 临牢促. // 促矫 % 楷魂磊甫 烹秦 窍唱狼 单捞磐甫 惶绰促. 捞繁 侥栏肺 // 夸备等 父怒狼 unique茄 单捞磐甫 惶酒尘 荐啊 乐促. int max = m_CurSize; int current = 0; while (current < size) { int index = rand()%max; resultList.push_back(m_pData[index]); T temp = m_pData[index]; m_pData[index] = m_pData[max-1]; m_pData[max-1] = temp; max--; current++; } } return resultList.size();}template<class T>unsigned int UniqueSet<T>::pick(unsigned int size, vector<T>& resultVector){ // 泅犁 啊瘤绊 乐绰 单捞鸥狼 箭磊啊 夸备等 单捞磐 箭磊焊促 利促搁, // 啊瘤绊 乐绰 单捞磐 葛滴甫 搬苞 府胶飘俊促 笼绢持绊 府畔茄促. if (size >= m_CurSize) { for (unsigned int i=0; i<m_CurSize; i++) { resultVector.push_back(m_pData[i]); } } // 酒聪扼搁 泅犁 啊瘤绊 乐绰 单捞鸥 吝狼 老何甫 夸备等 箭磊父怒 // 搬苞 府胶飘俊促 淬酒辑 府畔茄促. else { // 酒贰 舅绊府硫狼 琴缴篮 促澜苞 鞍促. // N俺狼 单捞鸥啊 乐栏搁 % 楷魂磊甫 烹秦 弊 吝狼 窍唱甫 惶酒辰促. // 单捞磐甫 搬苞俊 器窃矫淖促搁, 弊 单捞磐客 傈眉 单捞磐 吝狼 // 付瘤阜 单捞磐, 溜 N-1锅狼 单捞磐甫 胶恳茄促. 弊 促澜 N阑 1 临牢促. // 促矫 % 楷魂磊甫 烹秦 窍唱狼 单捞磐甫 惶绰促. 捞繁 侥栏肺 // 夸备等 父怒狼 unique茄 单捞磐甫 惶酒尘 荐啊 乐促. int max = m_CurSize; int current = 0; while (current < size) { int index = rand()%max; resultVector.push_back(m_pData[index]); T temp = m_pData[index]; m_pData[index] = m_pData[max-1]; m_pData[max-1] = temp; max--; current++; } } return resultVector.size();}#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?