亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? vector.h

?? pe exe packer (must use vc2005 to compile)
?? H
字號:
// Common/Vector.h

#ifndef __COMMON_VECTOR_H
#define __COMMON_VECTOR_H

#include "Defs.h"

class CBaseRecordVector
{
  void MoveItems(int destIndex, int srcIndex);
protected:
	int _capacity;
  int _size;
	void *_items;
  size_t _itemSize;

	void ReserveOnePosition();
  void InsertOneItem(int index);
  void TestIndexAndCorrectNum(int index, int &num) const
    { if (index + num > _size) num = _size - index; } 
public:
  CBaseRecordVector(size_t itemSize):
      _capacity(0), _size(0), _items(0), _itemSize(itemSize) {}
	virtual ~CBaseRecordVector();
  int Size() const { return _size; }
	bool IsEmpty() const { return (_size == 0); }
	void Reserve(int newCapacity);
	virtual void Delete(int index, int num = 1);
	void Clear();
  void DeleteFrom(int index);
  void DeleteBack();
};

template <class T>
class CRecordVector: public CBaseRecordVector
{
public:
  CRecordVector():CBaseRecordVector(sizeof(T)){};
  CRecordVector(const CRecordVector &v):
    CBaseRecordVector(sizeof(T)) { *this = v;}
	CRecordVector& operator=(const CRecordVector &v)
  {
    Clear();
    return (*this += v);
  }
  CRecordVector& operator+=(const CRecordVector &v)
  {
    int size = v.Size();
    Reserve(Size() + size);
    for(int i = 0; i < size; i++)
      Add(v[i]);
    return *this;
  }
	int Add(T item)
  {
    ReserveOnePosition();
    ((T *)_items)[_size] = item;
    return _size++;
  }
	void Insert(int index, T item)
  {
    InsertOneItem(index);
    ((T *)_items)[index] = item;
  }
  // T* GetPointer() const { return (T*)_items; }
  // operator const T *() const { return _items; };
  const T& operator[](int index) const { return ((T *)_items)[index]; }
	T& operator[](int index) { return ((T *)_items)[index]; }
	const T& Front() const { return operator[](0); }
  T& Front()   { return operator[](0); }
	const T& Back() const { return operator[](_size - 1); }
  T& Back()   { return operator[](_size - 1); }

  void Swap(int i, int j)
  {
    T temp = operator[](i);
    operator[](i) = operator[](j);
    operator[](j) = temp;
  }

  void Sort(int left, int right)
  { 
    if (right - left < 2)
      return;
    Swap(left, (left + right) / 2);
    int last = left;
    for (int i = left; i < right; i++)
      if (operator[](i) < operator[](left))
        Swap(++last, i);
    Swap(left, last);
    Sort(left, last);
    Sort(last + 1, right);
  }
  void Sort() { Sort(0, Size());  }
  void Sort(int left, int right, int (*compare)(const T*, const T*, void *), void *param)
  { 
    if (right - left < 2)
      return;
    Swap(left, (left + right) / 2);
    int last = left;
    for (int i = left; i < right; i++)
      if (compare(&operator[](i), &operator[](left), param) < 0)
        Swap(++last, i);
    Swap(left, last);
    Sort(left, last, compare, param);
    Sort(last + 1, right, compare, param);
  }

  void Sort(int (*compare)(const T*, const T*, void *), void *param) 
  {  
    Sort(0, Size(), compare, param);  
  }
};

typedef CRecordVector<int> CIntVector;
typedef CRecordVector<unsigned int> CUIntVector;
typedef CRecordVector<bool> CBoolVector;
typedef CRecordVector<unsigned char> CByteVector;
typedef CRecordVector<void *> CPointerVector;

template <class T>
class CObjectVector: public CPointerVector
{
public:
  CObjectVector(){};
  ~CObjectVector() { Clear(); }
  CObjectVector(const CObjectVector &objectVector)
    { *this = objectVector; }
	CObjectVector& operator=(const CObjectVector &objectVector)
  {
    Clear();
    return (*this += objectVector);
  }
	CObjectVector& operator+=(const CObjectVector &objectVector)
  {
    int size = objectVector.Size();
    Reserve(Size() + size);
    for(int i = 0; i < size; i++)
      Add(objectVector[i]);
    return *this;
  }
	const T& operator[](int index) const { return *((T *)CPointerVector::operator[](index)); }
	T& operator[](int index) { return *((T *)CPointerVector::operator[](index)); }
	T& Front() { return operator[](0); }
	const T& Front() const { return operator[](0); }
	T& Back() { return operator[](_size - 1); }
	const T& Back() const { return operator[](_size - 1); }
	int Add(const T& item)
    { return CPointerVector::Add(new T(item)); }
	void Insert(int index, const T& item)
    { CPointerVector::Insert(index, new T(item)); }
	virtual void Delete(int index, int num = 1)
  {
    TestIndexAndCorrectNum(index, num);
    for(int i = 0; i < num; i++)
      delete (T *)(((void **)_items)[index + i]);
    CPointerVector::Delete(index, num);
  }
  int Find(const T& item) const
  {
    for(int i = 0; i < Size(); i++)
      if (item == (*this)[i])
        return i;
      return -1;
  }
  int FindInSorted(const T& item) const
  {
    int left = 0, right = Size(); 
    while (left != right)
    {
      int mid = (left + right) / 2;
      const T& midValue = (*this)[mid];
      if (item == midValue)
        return mid;
      if (item < midValue)
        right = mid;
      else
        left = mid + 1;
    }
    return -1;
  }
  int AddToSorted(const T& item)
  {
    int left = 0, right = Size(); 
    while (left != right)
    {
      int mid = (left + right) / 2;
      const T& midValue = (*this)[mid];
      if (item == midValue)
      {
        right = mid + 1;
        break;
      }
      if (item < midValue)
        right = mid;
      else
        left = mid + 1;
    }
    Insert(right, item);
    return right;
  }

  void Sort(int (*compare)(void *const *, void *const *, void *), void *param) 
    { CPointerVector::Sort(compare, param); }

  static int CompareObjectItems(void *const *a1, void *const *a2, void *param)
    { return MyCompare(*(*((const T **)a1)), *(*((const T **)a2))); }
  void Sort() { CPointerVector::Sort(CompareObjectItems, 0); }
};

#endif 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆swag| 精品视频999| 亚洲成人在线免费| 国产色产综合色产在线视频| 色嗨嗨av一区二区三区| 麻豆国产一区二区| 亚洲人妖av一区二区| 日韩一区二区三区观看| 91视频国产观看| 国产一区二区三区电影在线观看| 一级中文字幕一区二区| 久久色视频免费观看| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 国产一区二区免费视频| 午夜在线电影亚洲一区| 亚洲啪啪综合av一区二区三区| 26uuu亚洲| 欧美福利一区二区| 日本高清无吗v一区| 成人做爰69片免费看网站| 精品综合久久久久久8888| 五月综合激情日本mⅴ| 亚洲免费在线看| 国产精品三级电影| 久久久久久99精品| 欧美精品一区视频| 日韩一区二区精品在线观看| 欧美性极品少妇| 97国产一区二区| 成人av资源在线| 丁香激情综合国产| 国产超碰在线一区| 国产成人免费在线| 国产一区二区导航在线播放| 久久精品国产网站| 奇米影视一区二区三区| 日本中文字幕一区二区视频 | 国产寡妇亲子伦一区二区| 三级在线观看一区二区| 亚洲风情在线资源站| 亚洲最新在线观看| 亚洲综合久久久久| 亚洲国产一区二区a毛片| 亚洲一二三区不卡| 亚洲一区二区中文在线| 亚洲精品中文在线| 亚洲精品国产高清久久伦理二区| 亚洲人成网站影音先锋播放| 亚洲美女区一区| 夜夜爽夜夜爽精品视频| 亚洲成人1区2区| 免费不卡在线观看| 精品在线一区二区| 国产传媒日韩欧美成人| av一区二区三区四区| 91亚洲精品久久久蜜桃| 欧美在线一区二区三区| 7777精品伊人久久久大香线蕉经典版下载 | 欧美成va人片在线观看| 2020国产成人综合网| 国产拍欧美日韩视频二区| 国产精品三级久久久久三级| 亚洲欧美另类综合偷拍| 五月天精品一区二区三区| 久久综合综合久久综合| 国产精品77777竹菊影视小说| 99久久久久久| 欧美日韩综合不卡| 日韩精品一区二区三区视频在线观看 | 亚洲精品菠萝久久久久久久| 一区av在线播放| 六月丁香婷婷久久| 国产69精品久久777的优势| 91麻豆国产精品久久| 欧美日韩高清不卡| 久久综合色一综合色88| 国产欧美精品一区二区色综合朱莉 | 精品成人一区二区三区四区| 18欧美亚洲精品| 婷婷中文字幕综合| 国内精品久久久久影院薰衣草 | 久久精品男人天堂av| 综合色天天鬼久久鬼色| 午夜精品福利久久久| 黄一区二区三区| 色综合天天综合给合国产| 欧美一区欧美二区| 中文字幕一区二区三区不卡在线 | 色av成人天堂桃色av| 8v天堂国产在线一区二区| 国产欧美精品国产国产专区| 亚洲自拍欧美精品| 国产精品一品二品| 欧美日韩在线播放一区| 欧美经典一区二区三区| 日韩激情视频网站| 99在线热播精品免费| 欧美大片在线观看一区| 自拍视频在线观看一区二区| 老司机精品视频一区二区三区| 99久久免费精品| 26uuu精品一区二区三区四区在线| 亚洲欧美日韩系列| 国产老肥熟一区二区三区| 欧美午夜不卡视频| 国产精品美女久久久久久久久久久| 日本亚洲一区二区| 色偷偷成人一区二区三区91| 国产亚洲欧美日韩俺去了| 青青国产91久久久久久| 色综合天天综合色综合av| 欧美激情中文字幕| 国内精品伊人久久久久av影院| 欧美精品免费视频| 亚洲永久免费av| 成人av免费在线播放| 久久这里只有精品6| 免费高清不卡av| 欧美一区二区三区免费| 欧美性videosxxxxx| 亚洲精品一区二区三区福利| av不卡在线播放| 一二三四社区欧美黄| 蜜桃av噜噜一区| 91黄色小视频| 亚洲男人的天堂在线观看| 粉嫩欧美一区二区三区高清影视| 精品国产伦一区二区三区观看体验| 狂野欧美性猛交blacked| 欧美精品免费视频| 亚洲成人免费视| 欧美人与禽zozo性伦| 亚洲va韩国va欧美va精品| 欧美无砖砖区免费| 亚洲国产综合在线| 欧美日韩一级片在线观看| 亚洲成人福利片| 欧美日韩国产一二三| 午夜日韩在线观看| 3751色影院一区二区三区| 亚洲h在线观看| 91精品国产一区二区三区香蕉| 午夜精品一区二区三区三上悠亚| 欧美军同video69gay| 日本在线不卡一区| 欧美大胆一级视频| 国产一区二区三区精品欧美日韩一区二区三区 | 黄色日韩三级电影| 久久蜜臀精品av| 成人免费视频一区| 亚洲欧洲无码一区二区三区| 色网综合在线观看| 亚洲mv大片欧洲mv大片精品| 欧美一区二区三区视频免费播放| 美女久久久精品| 久久中文字幕电影| 99久久精品国产网站| 亚洲国产日韩精品| 欧美va在线播放| 国产成人免费xxxxxxxx| 亚洲视频每日更新| 欧美日韩在线播放三区四区| 玖玖九九国产精品| 国产精品网友自拍| 欧美在线视频日韩| 免费观看91视频大全| 日本一区二区三区在线不卡| 色婷婷激情综合| 午夜精品免费在线| 欧美www视频| 91视频精品在这里| 久久精品国产精品亚洲综合| 日本一区二区综合亚洲| 欧美在线观看视频一区二区三区| 久久精品国产秦先生| 亚洲免费大片在线观看| 日韩欧美一区中文| 成人黄色免费短视频| 三级影片在线观看欧美日韩一区二区 | 日韩欧美一区二区视频| 成人一区二区三区在线观看| 性欧美疯狂xxxxbbbb| 国产日韩欧美精品一区| 欧美日韩激情在线| 成人亚洲精品久久久久软件| 午夜精品一区二区三区三上悠亚| 日本一区二区三区高清不卡| 欧美日韩国产小视频在线观看| 国产尤物一区二区| 亚洲一区二区在线观看视频| 欧美成人性福生活免费看| 色婷婷综合久久久| 蜜桃精品视频在线观看| 中日韩av电影| 欧美一级精品大片| 99久久免费国产| 久久精品国产网站| 亚洲精品国产一区二区精华液| 久久亚洲二区三区| 福利视频网站一区二区三区|