84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
在遍历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
走同样的路,发现不同的人生
通常、ベクトルを走査するには反復子または範囲を使用してください。インデックスを使用する必要がある場合は、ループ中にベクトルの長さが変化するかどうかに注意する必要があります。
最適化 o2 などのパラメータを指定すると、ループ内でベクトルのサイズを変更しない場合、実際にはベクトルのサイズが変数に格納されるため、この処理は最適化されません。非常に高価です。
通常、ベクトルを走査するには反復子または範囲を使用してください。インデックスを使用する必要がある場合は、ループ中にベクトルの長さが変化するかどうかに注意する必要があります。
リーリー最適化 o2 などのパラメータを指定すると、ループ内でベクトルのサイズを変更しない場合、実際にはベクトルのサイズが変数に格納されるため、この処理は最適化されません。非常に高価です。