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

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

?? sequenceperformance.cpp

?? C++編程思想第二版第一冊答案
?? CPP
字號:
//: C20:SequencePerformance.cpp
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 1999
// Copyright notice in Copyright.txt
// Comparing the performance of the basic
// sequence containers for various operations
#include <vector>
#include <queue>
#include <list>
#include <iostream>
#include <string>
#include <typeinfo>
#include <ctime>
#include <cstdlib>
using namespace std;

class FixedSize {
  int x[20];
  // Automatic generation of default constructor,
  // copy-constructor and operator=
} fs;

template<class Cont>
struct InsertBack {
  void operator()(Cont& c, long count) {
    for(long i = 0; i < count; i++)
      c.push_back(fs);
  }
  char* testName() { return "InsertBack"; }
};

template<class Cont>
struct InsertFront {
  void operator()(Cont& c, long count) {
    long cnt = count * 10;
    for(long i = 0; i < cnt; i++)
      c.push_front(fs);
  }  
  char* testName() { return "InsertFront"; }
};

template<class Cont>
struct InsertMiddle {
  void operator()(Cont& c, long count) {
    typename Cont::iterator it;
    long cnt = count / 10;
    for(long i = 0; i < cnt; i++) {
      // Must get the iterator every time to keep
      // from causing an access violation with
      // vector. Increment it to put it in the
      // middle of the container:
      it = c.begin();
      it++;
      c.insert(it, fs);
    }
  }
  char* testName() { return "InsertMiddle"; }
};

template<class Cont>
struct RandomAccess { // Not for list
  void operator()(Cont& c, long count) {
    int sz = c.size();
    long cnt = count * 100;
    for(long i = 0; i < cnt; i++)
      c[rand() % sz];
  }
  char* testName() { return "RandomAccess"; }
};

template<class Cont>
struct Traversal {
  void operator()(Cont& c, long count) {
    long cnt = count / 100;
    for(long i = 0; i < cnt; i++) {
      typename Cont::iterator it = c.begin(),
        end = c.end();
      while(it != end) it++;
    }
  }
  char* testName() { return "Traversal"; }
};

template<class Cont>
struct Swap {
  void operator()(Cont& c, long count) {
    int middle = c.size() / 2;
    typename Cont::iterator it = c.begin(), 
      mid = c.begin();
    it++; // Put it in the middle
    for(int x = 0; x < middle + 1; x++)
      mid++;
    long cnt = count * 10;
    for(long i = 0; i < cnt; i++)
      swap(*it, *mid);
  }
  char* testName() { return "Swap"; }
};

template<class Cont>
struct RemoveMiddle {
  void operator()(Cont& c, long count) {
    long cnt = count / 10;
    if(cnt > c.size()) {
      cout << "RemoveMiddle: not enough elements"
        << endl;
      return;
    }
    for(long i = 0; i < cnt; i++) {
      typename Cont::iterator it = c.begin();
      it++;
      c.erase(it);
    }
  }
  char* testName() { return "RemoveMiddle"; }
};

template<class Cont>
struct RemoveBack {
  void operator()(Cont& c, long count) {
    long cnt = count * 10;
    if(cnt > c.size()) {
      cout << "RemoveBack: not enough elements"
        << endl;
      return;
    }
    for(long i = 0; i < cnt; i++)
      c.pop_back();
  }
  char* testName() { return "RemoveBack"; }
};

template<class Op, class Container>
void measureTime(Op f, Container& c, long count){
  string id(typeid(f).name());
  bool Deque = id.find("deque") != string::npos;
  bool List = id.find("list") != string::npos;
  bool Vector = id.find("vector") !=string::npos;
  string cont = Deque ? "deque" : List ? "list" 
    : Vector? "vector" : "unknown";
  cout << f.testName() << " for " << cont << ": ";
  // Standard C library CPU ticks:
  clock_t ticks = clock();
  f(c, count); // Run the test
  ticks = clock() - ticks;
  cout << ticks << endl;
}

typedef deque<FixedSize> DF;
typedef list<FixedSize> LF;
typedef vector<FixedSize> VF;

int main(int argc, char* argv[]) {
  srand(time(0));
  long count = 1000;
  if(argc >= 2) count = atoi(argv[1]);
  DF deq;
  LF lst;
  VF vec, vecres;
  vecres.reserve(count); // Preallocate storage
  measureTime(InsertBack<VF>(), vec, count);
  measureTime(InsertBack<VF>(), vecres, count);
  measureTime(InsertBack<DF>(), deq, count);
  measureTime(InsertBack<LF>(), lst, count);
  // Can't push_front() with a vector:
//! measureTime(InsertFront<VF>(), vec, count);
  measureTime(InsertFront<DF>(), deq, count);
  measureTime(InsertFront<LF>(), lst, count);
  measureTime(InsertMiddle<VF>(), vec, count);
  measureTime(InsertMiddle<DF>(), deq, count);
  measureTime(InsertMiddle<LF>(), lst, count);
  measureTime(RandomAccess<VF>(), vec, count);
  measureTime(RandomAccess<DF>(), deq, count);
  // Can't operator[] with a list:
//! measureTime(RandomAccess<LF>(), lst, count);
  measureTime(Traversal<VF>(), vec, count);
  measureTime(Traversal<DF>(), deq, count);
  measureTime(Traversal<LF>(), lst, count);
  measureTime(Swap<VF>(), vec, count);
  measureTime(Swap<DF>(), deq, count);
  measureTime(Swap<LF>(), lst, count);
  measureTime(RemoveMiddle<VF>(), vec, count);
  measureTime(RemoveMiddle<DF>(), deq, count);
  measureTime(RemoveMiddle<LF>(), lst, count);
  vec.resize(vec.size() * 10); // Make it bigger
  measureTime(RemoveBack<VF>(), vec, count);
  measureTime(RemoveBack<DF>(), deq, count);
  measureTime(RemoveBack<LF>(), lst, count);
} ///:~

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区在线视频观看| 久久日韩精品一区二区五区| 亚洲一区二区精品久久av| www.亚洲激情.com| 亚洲女人的天堂| 色激情天天射综合网| 亚洲一区二区在线免费看| 欧美综合在线视频| 天堂精品中文字幕在线| 日韩欧美国产不卡| 国产精品一区在线观看乱码| 国产精品成人在线观看| 色诱视频网站一区| 免费看欧美美女黄的网站| 精品福利在线导航| caoporen国产精品视频| 亚洲成人免费av| 久久综合九色综合欧美亚洲| 91亚洲精品久久久蜜桃| 午夜欧美在线一二页| 久久久青草青青国产亚洲免观| 成人深夜视频在线观看| 亚洲成va人在线观看| 26uuu欧美| 欧美伊人久久大香线蕉综合69 | 日本一区二区免费在线| 91久久免费观看| 奇米色777欧美一区二区| 2024国产精品| 欧美亚男人的天堂| 国内精品视频一区二区三区八戒| 综合久久国产九一剧情麻豆| 欧美一区二区成人| aaa国产一区| 蜜桃视频免费观看一区| 国产精品国产自产拍在线| 欧美视频一区二区| 丰满亚洲少妇av| 奇米影视一区二区三区| 亚洲美女视频在线观看| xf在线a精品一区二区视频网站| 91蝌蚪国产九色| 久久99精品一区二区三区| 一区二区三区蜜桃网| 久久精品亚洲乱码伦伦中文 | 欧美精品久久久久久久多人混战 | www.亚洲免费av| 秋霞午夜鲁丝一区二区老狼| 亚洲视频一二三区| 久久嫩草精品久久久精品| 欧美精品在线一区二区三区| 成人h版在线观看| 国产一区二区久久| 看片的网站亚洲| 视频在线观看91| 一区二区三区高清不卡| 国产精品卡一卡二卡三| 久久综合国产精品| 日韩欧美一二三| 欧美精品第1页| 欧美专区亚洲专区| 色综合久久精品| 在线视频欧美精品| 91女厕偷拍女厕偷拍高清| 国产成人精品免费在线| 国产一区二区三区不卡在线观看 | 一区二区三区中文在线| 国产精品的网站| 欧美国产日韩a欧美在线观看| 日韩三级高清在线| 欧美精品日韩一本| 欧美喷水一区二区| 欧美三级电影在线看| 欧美中文一区二区三区| 欧美综合亚洲图片综合区| 色婷婷精品大在线视频 | 国产一区二区三区四区在线观看 | 国产精品三级av| 国产日产精品1区| 国产欧美精品一区aⅴ影院| 久久久精品国产免大香伊| 久久久国产精品麻豆| 久久综合丝袜日本网| www成人在线观看| 国产欧美日韩综合精品一区二区| 欧美激情综合网| 国产精品美女久久久久久| 国产精品另类一区| 国产精品久久久久天堂| 亚洲天天做日日做天天谢日日欢| 亚洲欧美日韩综合aⅴ视频| 一区二区三区在线视频免费观看| 夜色激情一区二区| 青娱乐精品在线视频| 日本欧美一区二区| 精品一区二区三区久久| 成人涩涩免费视频| 日本高清不卡一区| 欧美一卡二卡三卡四卡| 久久久久久麻豆| 亚洲日本一区二区| 天堂精品中文字幕在线| 国产一区二区免费看| 91亚洲午夜精品久久久久久| 欧美日韩高清不卡| 久久久国产精品麻豆| 亚洲激情第一区| 美女一区二区视频| 不卡影院免费观看| 在线综合亚洲欧美在线视频| 国产亚洲精品久| 国内精品国产三级国产a久久| 国产精品正在播放| 欧美视频在线一区二区三区| 欧美一区二区在线免费观看| 久久综合九色综合欧美亚洲| 亚洲人成亚洲人成在线观看图片| 日韩福利电影在线| 国产91在线|亚洲| 欧美日韩另类国产亚洲欧美一级| 久久夜色精品国产欧美乱极品| 日韩一区在线免费观看| 日本成人在线看| 99精品久久久久久| 亚洲精品在线免费播放| 亚洲综合激情另类小说区| 狠狠色丁香九九婷婷综合五月| 色婷婷香蕉在线一区二区| 精品国产一区久久| 亚洲国产综合色| 国产99久久久国产精品免费看| 欧美剧在线免费观看网站| 国产日韩欧美精品综合| 日本不卡123| 91在线免费视频观看| 精品国产第一区二区三区观看体验| ...av二区三区久久精品| 激情伊人五月天久久综合| 欧美日韩一区精品| 综合久久久久综合| 国产大陆a不卡| 日韩一区二区麻豆国产| 亚洲另类在线制服丝袜| 国产白丝精品91爽爽久久| 91精品欧美福利在线观看| 亚洲精品视频自拍| 丰满岳乱妇一区二区三区| 日韩欧美成人午夜| 亚洲线精品一区二区三区| 成人免费毛片嘿嘿连载视频| 精品成人一区二区| 免费成人深夜小野草| 欧美日韩的一区二区| 亚洲黄色免费电影| 97久久精品人人爽人人爽蜜臀 | 3751色影院一区二区三区| 亚洲狠狠丁香婷婷综合久久久| 国产伦精品一区二区三区在线观看| 日韩一区二区麻豆国产| 日本午夜一区二区| 91精品国产综合久久福利软件| 亚洲午夜久久久久中文字幕久| 色综合咪咪久久| 亚洲欧美一区二区不卡| 99精品国产一区二区三区不卡| 综合在线观看色| 94-欧美-setu| 最新高清无码专区| 色综合欧美在线视频区| 亚洲夂夂婷婷色拍ww47| 日本韩国一区二区三区视频| 美女www一区二区| 欧美一区二区女人| 韩国视频一区二区| 中文字幕av在线一区二区三区| 成人国产一区二区三区精品| ●精品国产综合乱码久久久久| 99久久久精品| 一区二区三区欧美在线观看| 欧美色大人视频| 日本视频一区二区三区| 精品国产百合女同互慰| 国产黄色91视频| 亚洲视频资源在线| 欧美日韩一级片网站| 免费视频一区二区| 国产无人区一区二区三区| www.欧美精品一二区| 亚洲女厕所小便bbb| 欧美肥妇毛茸茸| 国产一区二区三区免费| 中文字幕一区二区三区在线不卡| 一本色道a无线码一区v| 午夜一区二区三区在线观看| 精品国内片67194| av激情亚洲男人天堂| 五月天亚洲精品| 久久久午夜精品| 在线看国产一区二区| 韩国理伦片一区二区三区在线播放 |