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

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

?? tstash.h

?? Thinking in C++ 2.0書籍源碼光盤
?? H
字號:
//: C16:TStash.h
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 1999
// Copyright notice in Copyright.txt
// PSTASH using templates
#ifndef TSTASH_H
#define TSTASH_H
#include "../require.h"
#include <cstdlib>

// More convenient than nesting in TStash:
enum Owns { no = 0, yes = 1, Default };
// Declaration required:
template<class Type, int sz> class TStashIter;

template<class Type, int chunksize = 20>
class TStash {
  int quantity;
  int next;
  Owns _owns; // Flag
  void inflate(int increase = chunksize);
protected:
  Type** storage;
public:
  TStash(Owns owns = yes);
  ~TStash();
  Owns owns() const { return _owns; }
  void owns(Owns newOwns) { _owns = newOwns; }
  int add(Type* element);
  int remove(int index, Owns d = Default);
  Type* operator[](int index);
  int count() const { return next; }
  friend class TStashIter<Type, chunksize>;
};

template<class Type, int sz = 20>
class TStashIter {
  TStash<Type, sz>& ts;
  int index;
public:
  TStashIter(TStash<Type, sz>& TS)
    : ts(TS), index(0) {}
  TStashIter(const TStashIter& rv)
    : ts(rv.ts), index(rv.index) {}
  // Jump interator forward or backward:
  void forward(int amount) {
    index += amount;
    if(index >= ts.next) index = ts.next -1;
  }
  void backward(int amount) {
    index -= amount;
    if(index < 0) index = 0;
  }
  // Return value of ++ and -- to be
  // used inside conditionals:
  int operator++() {
    if(++index >= ts.next) return 0;
    return 1;
  }
  int operator++(int) { return operator++(); }
  int operator--() {
    if(--index < 0) return 0;
    return 1;
  }
  int operator--(int) { return operator--(); }
  operator int() {
    return index >= 0 && index < ts.next;
  }
  Type* operator->() {
    Type* t = ts.storage[index];
    if(t) return t;
    require(0,"TStashIter::operator->return 0");
    return 0; // To allow inlining
  }
  // Remove the current element:
  int remove(Owns d = Default){
    return ts.remove(index, d);
  }
};

template<class Type, int sz>
TStash<Type, sz>::TStash(Owns owns) : _owns(owns) {
  quantity = 0;
  storage = 0;
  next = 0;
}

// Destruction of contained objects:
template<class Type, int sz>
TStash<Type, sz>::~TStash() {
  if(!storage) return;
  if(_owns == yes)
    for(int i = 0; i < count(); i++)
      delete storage[i];
  free(storage);
}

template<class Type, int sz>
int TStash<Type, sz>::add(Type* element) {
  if(next >= quantity)
    inflate();
  storage[next++] = element;
  return(next - 1); // Index number
}

template<class Type, int sz>
int TStash<Type, sz>::remove(int index, Owns d){
  if(index >= next || index < 0)
    return 0;
  switch(d) {
    case Default:
      if(_owns != yes) break;
    case yes:
      delete storage[index];
    case no:
      storage[index] = 0; // Position is empty
  }
  return 1;
}

template<class Type, int sz> inline
Type* TStash<Type, sz>::operator[](int index) {
  // Remove check for shipping application:
  require(index >= 0 && index < next);
  return storage[index];
}

template<class Type, int sz>
void TStash<Type, sz>::inflate(int increase) {
  void* v =
    realloc(storage, (quantity+increase)*sizeof(Type*));
  require(v != 0);  // Was it successful?
  storage = (Type**)v;
  quantity += increase;
}
#endif // TSTASH_H ///:~

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
黄一区二区三区| 国产欧美日韩在线| 国产午夜亚洲精品午夜鲁丝片| 久久精品亚洲麻豆av一区二区| 日韩美女视频19| 精品一区免费av| 欧美在线免费视屏| 国产婷婷色一区二区三区四区 | 欧美性生活久久| 久久在线观看免费| 天天综合天天综合色| 96av麻豆蜜桃一区二区| www国产亚洲精品久久麻豆| 午夜精品久久久久| 日本高清视频一区二区| 一区二区三区欧美日| 国产福利视频一区二区三区| 在线播放亚洲一区| 亚洲综合一二区| 成人91在线观看| 久久久午夜电影| 精品一区二区免费视频| 在线91免费看| 亚洲动漫第一页| 欧美中文字幕一区二区三区| 国产精品激情偷乱一区二区∴| 狠狠色狠狠色合久久伊人| 91.麻豆视频| 亚洲成av人片一区二区| 91麻豆免费看片| 综合av第一页| 91啪九色porn原创视频在线观看| 国产日韩在线不卡| 成人av电影在线| 国产精品三级视频| 99久久伊人久久99| 国产精品久久久久久久久免费丝袜| 国产黑丝在线一区二区三区| 26uuu亚洲| 国产成人精品三级麻豆| 欧美激情综合在线| 粉嫩久久99精品久久久久久夜| 久久久亚洲国产美女国产盗摄 | 亚洲欧美二区三区| 色婷婷av一区二区三区软件| 综合久久给合久久狠狠狠97色| 91亚洲国产成人精品一区二三| 亚洲人成小说网站色在线| 91免费看片在线观看| 亚洲综合小说图片| 欧美日韩视频专区在线播放| 男人的天堂亚洲一区| 欧美精品一区二区三区很污很色的| 精品一区二区三区免费播放| 久久色在线视频| 91日韩精品一区| 亚洲二区视频在线| 精品久久久三级丝袜| 从欧美一区二区三区| 一区二区免费看| 在线播放中文字幕一区| 国产精品亚洲专一区二区三区 | 处破女av一区二区| 亚洲综合色婷婷| 91精品欧美久久久久久动漫| 国产一区高清在线| 亚洲欧美日韩中文字幕一区二区三区| 欧美色图免费看| 精品无码三级在线观看视频| 最新高清无码专区| 欧美一区二区三区的| 成人少妇影院yyyy| 日本少妇一区二区| 中文字幕一区二区三区在线播放 | 日韩欧美成人一区| gogo大胆日本视频一区| 日韩精品一级二级| 国产精品免费免费| 欧美一区二区三区四区在线观看| 国产91在线|亚洲| 午夜精品久久久久影视| 国产精品毛片无遮挡高清| 欧美老年两性高潮| 99精品视频在线观看| 精品在线视频一区| 日韩影视精彩在线| 亚洲欧美日韩电影| 日本一区二区久久| 欧美精品日韩综合在线| 91在线精品一区二区| 国产一区二区在线看| 日韩主播视频在线| 一区二区免费在线| 亚洲人成7777| 最新成人av在线| 国产视频视频一区| 精品三级在线看| 欧美人动与zoxxxx乱| 91丝袜国产在线播放| 国产一区二区在线看| 久久精品久久久精品美女| 亚洲香肠在线观看| 亚洲欧美日韩国产综合在线| 国产精品丝袜一区| 国产精品视频观看| 久久精品夜夜夜夜久久| 欧美大片在线观看一区| 日韩一区二区三区av| 欧美精品777| 欧美三级中文字| 欧美亚洲动漫另类| 在线国产电影不卡| 日本高清成人免费播放| 99久久精品国产一区| jiyouzz国产精品久久| 成人av综合在线| 懂色av一区二区三区蜜臀| 国产一区二区在线看| 国产美女av一区二区三区| 狠狠狠色丁香婷婷综合久久五月| 美日韩黄色大片| 奇米一区二区三区| 国内精品伊人久久久久av影院 | 一区二区三区在线观看国产| 综合久久综合久久| 一区二区成人在线观看| 亚洲福利一区二区三区| 亚洲成人动漫精品| 日韩精品国产欧美| 免费成人你懂的| 国产精品影视在线观看| 成人黄色电影在线| 欧美性一区二区| 欧美一级xxx| 国产三级精品在线| 中文字幕亚洲不卡| 亚洲一区二区不卡免费| 日本在线不卡视频| 国产一区二区三区久久悠悠色av| 国产福利视频一区二区三区| 91理论电影在线观看| 欧美日韩五月天| wwwwxxxxx欧美| 亚洲同性同志一二三专区| 亚洲国产欧美日韩另类综合| 六月丁香婷婷色狠狠久久| 国产精品99久久久久久久女警 | 欧美三级午夜理伦三级中视频| 欧美一区二区三区在线视频 | 丰满白嫩尤物一区二区| 色婷婷国产精品久久包臀| 日韩三级伦理片妻子的秘密按摩| 中文字幕不卡的av| 亚洲成av人片一区二区梦乃| 国产乱码精品一区二区三区av | 一区二区国产盗摄色噜噜| 久久9热精品视频| 91丨九色丨尤物| 精品久久一区二区| 亚洲国产一区二区三区| 国产一区二区毛片| 欧美色精品天天在线观看视频| 26uuu亚洲综合色欧美| 一区二区三区四区不卡在线| 国内成人自拍视频| 欧美视频一区二区三区四区 | 精品久久一区二区| 中文字幕一区二区不卡| 久久不见久久见免费视频1| 色视频欧美一区二区三区| 精品99一区二区| 性欧美大战久久久久久久久| 成人黄色综合网站| 欧美va亚洲va| 午夜精品爽啪视频| 91丝袜呻吟高潮美腿白嫩在线观看| 26uuu亚洲综合色| 亚洲成人激情av| 91国偷自产一区二区开放时间 | 欧美日韩国产综合一区二区| 国产日韩av一区| 捆绑紧缚一区二区三区视频| 在线观看不卡一区| 国产精品久久夜| 成人三级在线视频| 国产日产精品一区| 韩国三级中文字幕hd久久精品| 欧美丰满少妇xxxbbb| 亚洲日本va午夜在线影院| 国产一区二区在线免费观看| 91精品国产一区二区三区香蕉| 亚洲精品高清在线| 97国产精品videossex| 中文字幕一区二区三区av| 丰满放荡岳乱妇91ww| 中文字幕精品综合| 粉嫩av一区二区三区| 国产精品久久久久久亚洲毛片| 激情六月婷婷久久| 久久综合给合久久狠狠狠97色69|