list(3)

iteratorのincrement

こう書くと、iteratorのincrementの速度を純粋に比較できる。


void procVector() {
vector v;
for(int k = 0; k < m; k++)
v.push_back(k);

int a = 0;
typedef vector::const_iterator CIT;
for(int i = 0; i < n; i++) {
for(CIT p = v.begin(); p != v.end(); ++p)
a += a;
}

cerr << a << endl;
}

そうすると、
vector : 4.959s, list : 34.059s, int : 6.552s
となった。
このうち、すべてがincrementではないが、
1/3としても、vectorのほうが、listより20倍は速そうだ。
値へのアクセスもvectorのほうがやや速いようだ。