indexingvsat.cpp

来自「希望我提供的代码对大家有帮助」· C++ 代码 · 共 45 行

CPP
45
字号
//: C20:IndexingVsAt.cpp

// From Thinking in C++, 2nd Edition

// Available at http://www.BruceEckel.com

// (c) Bruce Eckel 1999

// Copyright notice in Copyright.txt

// Comparing "at()" to operator[]

#include "../require.h"

#include <vector>

#include <deque>

#include <iostream>

#include <ctime>

using namespace std;



int main(int argc, char* argv[]) {

  requireMinArgs(argc, 1);

  long count = 1000;

  int sz = 1000;

  if(argc >= 2) count = atoi(argv[1]);

  if(argc >= 3) sz = atoi(argv[2]);

  vector<int> vi(sz);

  clock_t ticks = clock();

  for(int i1 = 0; i1 < count; i1++)

    for(int j = 0; j < sz; j++)

      vi[j];

  cout << "vector[]" << clock() - ticks << endl;

  ticks = clock();

  for(int i2 = 0; i2 < count; i2++)

    for(int j = 0; j < sz; j++)

      vi.at(j);

  cout << "vector::at()" << clock()-ticks <<endl;

  deque<int> di(sz);

  ticks = clock();

  for(int i3 = 0; i3 < count; i3++)

    for(int j = 0; j < sz; j++)

      di[j];

  cout << "deque[]" << clock() - ticks << endl;

  ticks = clock();

  for(int i4 = 0; i4 < count; i4++)

    for(int j = 0; j < sz; j++)

      di.at(j);

  cout << "deque::at()" << clock()-ticks <<endl;

  // Demonstrate at() when you go out of bounds:

  di.at(vi.size() + 1);

} ///:~

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?