哪种方法更快且开销更少?
方法一:
void foo() {
std::vector< int > aVector;
for ( int i = 0; i < 1000000; ++i ) {
aVector.clear();
aVector.push_back( i );
}
}
方法二:
void foo() {
for ( int i = 0; i < 1000000; ++i ) {
std::vector< int > aVector;
aVector.push_back( i );
}
}
你可能会说这个例子没有意义!但这只是我的大代码中的一个片段。总之我想知道是不是更好
“创建一次向量并清除它以供使用”
或者
“每次都创建一个新向量”
更新
感谢您的建议,我都测试了,这是结果
方法一:
$ time ./test1
real 0m0.044s
user 0m0.042s
sys 0m0.002s
方法二:
$ time ./test2
real 0m0.601s
user 0m0.599s
sys 0m0.002s
清除向量更好。也许这对其他人有帮助:)