c++ - 循环判断条件为vec.size(),每次调用会不会优化?需要特地先求出size()吗?
怪我咯
怪我咯 2017-04-17 15:07:09
0
2
721

在遍历vector容器时,使用如下方法遍历:

for(int i=0; i<vec.size(); ++i)
    //do something

循环条件中使用了.size()操作,我用g++测试,每次编译器都会执行这个操作,那么效率会不会有影响?编译器不会优化吗?

需不需要提前求出来,比如:

const int size = vec.size();
for(int i=0; i<size; ++i)
    //do something
怪我咯
怪我咯

走同样的路,发现不同的人生

全員に返信(2)
刘奇

通常、ベクトルを走査するには反復子または範囲を使用してください。インデックスを使用する必要がある場合は、ループ中にベクトルの長さが変化するかどうかに注意する必要があります。

リーリー
いいねを押す +0
阿神

最適化 o2 などのパラメータを指定すると、ループ内でベクトルのサイズを変更しない場合、実際にはベクトルのサイズが変数に格納されるため、この処理は最適化されません。非常に高価です。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!