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

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

?? gnarray.imp

?? Gambit 是一個游戲庫理論軟件
?? IMP
字號:
//// $Source: /home/gambit/CVS/gambit/sources/game/gnarray.imp,v $// $Date: 2002/08/26 05:50:08 $// $Revision: 1.2 $//// DESCRIPTION:// Implementation for N-dimensional arrays//// This file is part of Gambit// Copyright (c) 2002, The Gambit Project//// This program is free software; you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation; either version 2 of the License, or// (at your option) any later version.//// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with this program; if not, write to the Free Software// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.//#include <assert.h>#include "base/base.h"#include "gnarray.h"template <class T> gNArray<T>::gNArray(void)  : storage_size(0), storage(0){ }template <class T> gNArray<T>::gNArray(const gArray<int> &d)  : dim(d){  if (dim.Length() <= 0)   {    storage = 0;    storage_size = 0;  }  else   {    assert(dim.First() == 1);    storage_size = 1;    int i;    for (i = 1; i <= dim.Length(); i++)   {      assert(dim[i] >= 1);      storage_size *= dim[i];    }    storage = new  T[storage_size];    for (i = 0; i < storage_size; storage[i++] = 0);  }}template <class T> gNArray<T>::gNArray(const gNArray<T> &a)  : storage_size(a.storage_size), dim(a.dim){  storage = (storage_size > 0) ? new  T[storage_size] : 0;  for (int i = 0; i < storage_size; i++)    storage[i] = a.storage[i];}template <class T> gNArray<T>::~gNArray(){  if (storage)    delete [] storage;}template <class T>gNArray<T> &gNArray<T>::operator=(const gNArray<T> &a){  if (this != &a)   {    if (storage)    delete [] storage;    dim = a.dim;    storage_size = a.storage_size;    storage = (storage_size > 0) ? new T[storage_size] : 0;    for (int i = 0; i < storage_size; i++)      storage[i] = a.storage[i];  }  return *this;}/*template <class T> T gNArray<T>::operator[](const gVector<int> &v) const{  assert(dim.Length() > 0 && dim.Length() == v.Length());  int i,location,offset;    for (i = 1, location = 0, offset = 1; i <= dim.Length(); i++)   {    assert(v[i] > 0 && v[i] <= dim[i]);    location += (v[i] - 1) * offset;    offset *= dim[i];  }    return storage[location];}template <class T> T &gNArray<T>::operator[](const gVector<int> &v){  assert(dim.Length() > 0 && dim.Length() == v.Length());  int i, location, offset;    for (i = 1, location = 0, offset = 1; i <= dim.Length(); i++)   {    assert(v[i] > 0 && v[i] <= dim[i]);    location += (v[i] - 1) * offset;    offset *= dim[i];  }    return storage[location];}*/template <class T> T gNArray<T>::operator[](const gArray<int> &v) const{  assert(dim.Length() > 0 && dim.Length() == v.Length());  int i, location, offset;    for (i = 1, location = 0, offset = 1; i <= dim.Length(); i++)   {    assert(v[i] > 0 && v[i] <= dim[i]);    location += (v[i] - 1) * offset;    offset *= dim[i];  }  return storage[location];}template <class T> T &gNArray<T>::operator[](const gArray<int> &v){  assert(dim.Length() > 0 && dim.Length() == v.Length());  int i, location, offset;    for (i = 1, location = 0, offset = 1; i <= dim.Length(); i++)   {    assert(v[i] > 0 && v[i] <= dim[i]);    location += (v[i] - 1) * offset;    offset *= dim[i];  }  return storage[location];}template <class T> void gNArray<T>::Output(gOutput &f) const{  if (dim.Length() > 0)   {    for (int i = dim.Length(); i > 0; f << i-- << ' ');    f << '\n';        gVector<int> v(1, dim.Length());    DumpFrom(f, 1, v);    f << '\n';  }}template <class T> void gNArray<T>::DumpFrom(gOutput &f, int offset, gVector<int> &v) const{  for (int i = 1; i <= dim[offset]; i++)   {    v[offset] = i;    if (offset == dim.Length())      f << (*this)[v] << ' ';    else      DumpFrom(f, offset + 1, v);  }}/*template <class T> void gNArray<T>::Input(gInput &f, const gVector<int> &norder, int i){  gVector<int> strat(1, i);  ReadFrom(f, norder, strat, i);}template <class T> void gNArray<T>::ReadFrom(gInput &f, const gVector<int> &norder,			  gVector<int> &strat, int i){  for (int j = 1; j <= dim[norder[i]]; j++)   {    strat[norder[i]] = j;    if (i > 1)      ReadFrom(f, norder, strat, i - 1);    else       f >> (*this)[strat];  }}*/template <class T> const T &gNArray<T>::operator[](long l) const{  assert(l >= 0 && l < storage_size);  return storage[l];}template <class T> T &gNArray<T>::operator[](long l) {  assert(l >= 0 && l < storage_size);  return storage[l];}template <class T> const gArray<int> &gNArray<T>::Dimensionality(void) const{  return dim;}//-------------------------------------------#ifdef UNUSEDtemplate <class T> gIndexedNArray<T>::gIndexedNArray(void){  index = 0;}template <class T> gIndexedNArray<T>::gIndexedNArray(const gVector<int> &d)  : gNArray<T>(d){  long offset = 1;    index = new gArray<long>[dim.Length()];  for (int i = 1; i <= dim.Length(); i++)  {    for (int j = 0; j < dim[i]; j++)      index[i - 1] += j * offset;    offset *= dim[i];  }}template <class T>gIndexedNArray<T>::gIndexedNArray(const gIndexedNArray<T> &a)  : gNArray<T>(a){  index = new gArray<long>[dim.Length()];  for (int i = 0; i < dim.Length(); i++)    index[i] = a.index[i];}template <class T> gIndexedNArray<T>::~gIndexedNArray(){  if (index)   delete [] index;}template <class T> gIndexedNArray<T> &gIndexedNArray<T>::operator=(const gIndexedNArray<T> &a){  if (this != &a)   {    gNArray<T>::operator=(a);        if (index)   delete [] index;    index = new gArray<long>[dim.Length()];    for (int i = 0; i < dim.Length(); i++)      index[i] = a.index[i];  }  return *this;}template <class T>T gIndexedNArray<T>::operator=(const gVector<int> &v) const{  long location = 0;    assert(dim.Length() > 0 && dim.Length() == v.Length());    for (int i = 1; i <= dim.Length(); i++)   {    assert(v[i] > 0 && v[i] <= dim[i]);    location += index[i - 1][v[i]];  }    return storage[location];}template <class T>T &gIndexedNArray<T>::operator=(const gVector<int> &v){  long location = 0;  assert(dim.Length() > 0 && dim.Length() == v.Length());    for (int i = 1; i <= dim.Length(); i++)   {    assert(v[i] > 0 && v[i] <= dim[i]);    location += index[i - 1][v[i]];  }  return storage[location];}#endif   // UNUSED

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
1000精品久久久久久久久| 中文字幕一区二区视频| 成人性生交大合| 麻豆精品一二三| 国产精品九色蝌蚪自拍| 欧美变态tickle挠乳网站| 色噜噜狠狠色综合中国 | 国产在线一区二区| 一区二区三区四区av| 久久久久久久久伊人| 欧美一区日本一区韩国一区| 972aa.com艺术欧美| 国产一区二区福利视频| 五月综合激情婷婷六月色窝| 亚洲色图.com| 2024国产精品| 欧美电影免费提供在线观看| 欧美视频一区二区三区四区| 菠萝蜜视频在线观看一区| 裸体一区二区三区| 亚洲成av人片在线| 一区二区三区美女| 中文字幕一区av| 国产精品网站一区| 国产性天天综合网| 久久久国产综合精品女国产盗摄| 91精品国产色综合久久ai换脸 | 欧美成人aa大片| 2024国产精品| 日韩午夜在线观看视频| 欧美精品一二三四| 欧美精品日韩精品| 欧美日韩国产精选| 欧美日韩国产区一| 在线不卡一区二区| 在线综合视频播放| 欧美一区二区三区不卡| 5566中文字幕一区二区电影| 欧美精品一二三区| 51精品视频一区二区三区| 337p亚洲精品色噜噜噜| 7777精品伊人久久久大香线蕉 | 成人综合激情网| 国产不卡在线一区| 成人小视频在线观看| 成人av电影在线观看| 99re热这里只有精品免费视频| youjizz久久| 色综合天天天天做夜夜夜夜做| av电影在线观看不卡| 色综合中文字幕| 欧美日本一区二区三区| 91精品国产免费| 欧美成人三级电影在线| 久久久久国色av免费看影院| 日本一区二区综合亚洲| 亚洲欧美一区二区三区孕妇| 亚洲综合一区二区精品导航| 日韩av一区二区三区四区| 久久97超碰国产精品超碰| 国产麻豆日韩欧美久久| 波多野结衣在线一区| 色香色香欲天天天影视综合网| 欧美亚洲动漫精品| 91精品蜜臀在线一区尤物| 久久免费偷拍视频| 亚洲天堂免费看| 日韩精品国产欧美| 粉嫩绯色av一区二区在线观看| 91亚洲大成网污www| 欧美日韩一卡二卡三卡 | 亚洲男人的天堂在线观看| 亚洲国产精品久久久久婷婷884| 麻豆视频一区二区| 国产伦精品一区二区三区免费| av网站一区二区三区| 在线成人免费观看| 国产精品网友自拍| 午夜日韩在线电影| 国产成人激情av| 欧美精品在线视频| 国产精品白丝在线| 美脚の诱脚舐め脚责91| www.在线成人| 欧美va天堂va视频va在线| 亚洲丝袜自拍清纯另类| 美国三级日本三级久久99| 91丝袜美腿高跟国产极品老师| 欧美一级片在线| 亚洲天堂成人在线观看| 久久99国产精品尤物| 91免费视频大全| 欧美电影免费观看高清完整版| 亚洲色图第一区| 国产精选一区二区三区| 欧美色综合网站| 国产精品久久毛片| 久久精品国产精品青草| 日本韩国欧美国产| 国产日韩欧美激情| 欧美aⅴ一区二区三区视频| 色综合久久中文综合久久牛| 精品国产露脸精彩对白| 一区二区三区 在线观看视频 | 91蜜桃网址入口| 精品国产乱码久久久久久免费| 亚洲免费成人av| 国产不卡免费视频| 精品国产一区二区亚洲人成毛片| 亚洲午夜精品在线| 91免费看视频| 国产精品成人免费| 国产精品18久久久久久久网站| 欧美高清视频不卡网| 亚洲一二三专区| 91在线精品秘密一区二区| 久久久久久久精| 九九九久久久精品| 日韩一级在线观看| 青青草国产成人99久久| 在线播放欧美女士性生活| 亚洲欧美日韩系列| 99精品国产99久久久久久白柏| 国产婷婷一区二区| 国产寡妇亲子伦一区二区| 日韩色视频在线观看| 免费成人av在线播放| 欧美日本在线播放| 同产精品九九九| 欧美日韩高清一区二区| 亚洲一区二区精品3399| 欧美色视频一区| 视频一区二区三区中文字幕| 欧美日韩黄视频| 亚洲bt欧美bt精品777| 欧美精品99久久久**| 日本人妖一区二区| 日韩欧美一级二级三级| 精品一二三四在线| 26uuu亚洲| 国产成人午夜精品5599| 国产精品午夜春色av| 99麻豆久久久国产精品免费优播| 亚洲欧洲另类国产综合| 一本到不卡免费一区二区| 亚洲国产一区二区视频| 欧美精品丝袜久久久中文字幕| 日韩国产在线一| 精品久久国产老人久久综合| 国产老肥熟一区二区三区| 国产午夜精品理论片a级大结局 | 国产日产精品一区| 成人免费毛片a| 亚洲三级在线播放| 欧美日本免费一区二区三区| 免费成人深夜小野草| 久久久777精品电影网影网| 99久久国产综合精品麻豆| 亚洲一二三四在线观看| 欧美一区二区视频网站| 国产精品18久久久久久久久久久久| 国产精品日韩成人| 欧美亚洲另类激情小说| 美女视频黄a大片欧美| 国产精品网站在线观看| 欧美日本一道本在线视频| 国内精品国产成人国产三级粉色| 国产精品短视频| 欧美日韩国产不卡| 国产成人精品午夜视频免费| 亚洲一区二区精品久久av| 精品日产卡一卡二卡麻豆| www.欧美日韩国产在线| 午夜精品一区二区三区三上悠亚| 337p日本欧洲亚洲大胆精品| 99精品久久久久久| 美国毛片一区二区三区| 综合久久久久久久| 日韩午夜在线观看视频| 91小宝寻花一区二区三区| 日本亚洲最大的色成网站www| 欧美国产精品久久| 欧美一区二区三区视频在线 | 91美女在线视频| 精品一区中文字幕| 亚洲激情综合网| 久久久久久久久蜜桃| 欧美日韩国产高清一区二区三区 | 欧美激情综合在线| 欧美精品在线一区二区| 97久久精品人人做人人爽| 蜜臀精品久久久久久蜜臀 | 中文字幕综合网| 2020国产成人综合网| 欧美日韩精品欧美日韩精品 | 高清成人在线观看| 视频在线在亚洲| 综合久久一区二区三区| 久久久精品免费免费| 欧美一区二区成人|