週に一回は書きますよ 月に4つ記事を書けばノルマは満たされます。
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

shinhさんのコードに便乗して実験します。dequeとreserveしたvectorを追加。

#include <iostream>
#include <iomanip>
#include <ctime>
#include <vector>
#include <list>
#include <deque>
using namespace std;
const int REPEAT=10000000;
template<typename C>
void pushbacker(C& c) {
  clock_t cl = clock();
  for (int i = 0; i < REPEAT; i++) {
    c.push_back(i);
  }
  cout << (((double)clock() - cl) / CLOCKS_PER_SEC) << endl;
}
int main(void) {
  cout.setf(ios::fixed);
  cout << setprecision(3);
  vector<int> v;
  pushbacker(v);
  list<int> l;
  pushbacker(l);
  deque<int> d;
  pushbacker(d);
  vector<int> v2;
  v2.reserve(REPEAT);
  pushbacker(v2);
  cout << CLOCKS_PER_SEC << endl;
  return 0;
}

実行してみます。

$ g++ --version
i686-apple-darwin8-g++-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5367)
Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ g++ -O2 -o pushabck -Wall -W pushback.cc
$ ./pushabck
0.270
1.490
0.130
0.120
100
$

dequeは速いですね。速いのでstackのデフォルトになっていると認識しています。 一方listが何故かさらに遅くなりました。どうしてこんなに遅いのでしょう。

スポンサーサイト
コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://gusmachine.blog49.fc2.com/tb.php/327-c34eaf0f
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。