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

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

?? sequenceperformance.cpp

?? Thingking_in_C++配套書籍例子代碼
?? CPP
字號:
//: C04:SequencePerformance.cpp
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 2000
// 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一区二区三区免费野_久草精品视频
久久精品夜夜夜夜久久| 91.com在线观看| 成人性视频免费网站| 韩国视频一区二区| 亚洲欧美另类久久久精品2019| 综合激情成人伊人| 日韩精品91亚洲二区在线观看| 久久精品国产第一区二区三区| 亚洲三级免费观看| 在线观看国产日韩| 精品久久久久久亚洲综合网| 一区在线观看免费| 久久99精品视频| 在线观看一区不卡| 日韩国产欧美视频| 色综合久久久久久久久| 精品国产乱码久久| 4438x亚洲最大成人网| 奇米综合一区二区三区精品视频| 99精品热视频| 欧美精品一区二区三区蜜桃视频| 国产精品中文欧美| 欧美丰满一区二区免费视频| 中文字幕欧美日韩一区| 蜜桃av噜噜一区| 欧美美女网站色| 国产精品一区二区三区乱码| 欧美午夜精品免费| 国产精品剧情在线亚洲| 国产在线麻豆精品观看| 亚洲欧洲综合另类在线| 日韩欧美国产精品| 婷婷开心激情综合| 欧美日韩成人一区| 亚州成人在线电影| 欧美日韩中文国产| 亚洲成av人片观看| 欧美激情中文不卡| 欧美精品高清视频| 波多野结衣91| 亚洲另类在线视频| 91色九色蝌蚪| 一区二区三区四区不卡在线 | 亚洲日本一区二区| 欧美电视剧在线观看完整版| 91亚洲资源网| 国产一区二区三区精品视频 | 久久先锋影音av鲁色资源| 老司机一区二区| 亚洲一区二区三区自拍| www.日韩大片| 九九精品一区二区| 丝袜亚洲精品中文字幕一区| 亚洲欧美另类小说| 国产精品全国免费观看高清| 99国内精品久久| 国产一区二区三区四区在线观看| 亚洲成人一区二区在线观看| 国产精品免费视频一区| 日韩欧美一二三区| 欧美一区二区成人6969| 久久国产视频网| 日韩高清在线电影| 亚洲成人av一区二区三区| 最新高清无码专区| 国产精品久久久久久久久久久免费看 | 欧美中文字幕一二三区视频| 丁香啪啪综合成人亚洲小说| 日本一区二区三区免费乱视频| 精东粉嫩av免费一区二区三区| 亚洲精品第1页| 中文字幕一区二区三区乱码在线 | 欧美优质美女网站| 日本丰满少妇一区二区三区| 亚洲一区二区三区四区五区中文 | 欧美一区二区高清| 日韩欧美一区二区视频| 91精品国产91热久久久做人人| 欧美日韩一级二级三级| 欧美日韩成人高清| 这里只有精品99re| 日韩视频在线你懂得| www.亚洲免费av| gogogo免费视频观看亚洲一| 成人av网站大全| 奇米影视一区二区三区| 六月丁香综合在线视频| 免费一区二区视频| 久久福利资源站| 国产一区二区在线视频| 国产精品一区二区91| 国产不卡在线视频| 日韩福利视频导航| 久久国产精品99久久人人澡| 久久国产综合精品| 波多野结衣在线一区| 色婷婷久久久久swag精品| 欧美日韩亚洲国产综合| 欧美成人在线直播| 国产拍欧美日韩视频二区| 亚洲欧美一区二区三区国产精品 | 日韩美一区二区三区| 精品久久99ma| 国产精品久久久久国产精品日日| 一区视频在线播放| 青青草成人在线观看| 狠狠色2019综合网| 国产成人亚洲精品青草天美| 日韩午夜电影av| ww亚洲ww在线观看国产| 日韩一区二区三区视频在线| 日韩午夜激情免费电影| 亚洲黄色小说网站| 亚洲成人午夜影院| 亚洲综合一二三区| 蜜桃视频一区二区三区在线观看 | 欧美一区二区三区公司| 亚洲精品一线二线三线| 国产日韩欧美综合一区| 成人免费在线视频| 丝袜脚交一区二区| 国产91丝袜在线观看| 日本韩国一区二区三区| 欧美一区二区在线看| 久久久久国产精品免费免费搜索| 91国偷自产一区二区使用方法| 欧美性欧美巨大黑白大战| 精品播放一区二区| 亚洲欧洲av色图| 亚洲成人激情自拍| 国产福利一区在线| 在线看国产一区| 国产欧美一区二区三区网站| 樱桃视频在线观看一区| 男人的天堂久久精品| 福利一区福利二区| 国产成人免费视频网站| 欧美日韩一级大片网址| 久久理论电影网| 亚洲成人福利片| 国产精品影视网| 欧美日韩国产一二三| 日本一二三不卡| 日韩成人伦理电影在线观看| 在线一区二区视频| 久久久国际精品| 午夜视频在线观看一区| 懂色一区二区三区免费观看 | 日韩一区二区免费高清| 欧美经典三级视频一区二区三区| 香蕉加勒比综合久久| 东方欧美亚洲色图在线| 久久久久亚洲蜜桃| 成人做爰69片免费看网站| 亚洲一区二区三区小说| 中文一区在线播放| 国产一区二区三区综合| 日韩欧美一区在线观看| 亚洲成人综合网站| 欧美日韩精品电影| 一二三四社区欧美黄| 婷婷综合五月天| 成人精品在线视频观看| 婷婷开心久久网| 欧美色区777第一页| 国产日产亚洲精品系列| 视频一区视频二区在线观看| 樱花草国产18久久久久| 免费成人在线播放| 久久亚洲私人国产精品va媚药| 激情文学综合丁香| 综合欧美一区二区三区| 精品视频一区二区不卡| 精品一区二区三区蜜桃| 国产精品福利一区| 色八戒一区二区三区| 蜜桃视频免费观看一区| 久久在线免费观看| 国产精品一区二区在线观看不卡 | 国产精品三级av在线播放| 91免费观看在线| 亚洲色图欧洲色图婷婷| 精品久久久久av影院| 丝袜诱惑制服诱惑色一区在线观看 | 欧美伊人久久久久久午夜久久久久| 亚洲欧美在线aaa| 欧美日韩国产小视频在线观看| 免费观看成人鲁鲁鲁鲁鲁视频| 久久日韩精品一区二区五区| 成人综合在线观看| 久久噜噜亚洲综合| 91麻豆免费观看| 偷拍一区二区三区四区| 久久蜜桃av一区二区天堂 | 国产91清纯白嫩初高中在线观看| 国产性做久久久久久| 欧美日韩久久久一区| 国产一区二区美女诱惑| 一区二区三区欧美激情| 久久嫩草精品久久久精品一|