在遍历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 등의 매개변수를 지정하면 최적화될 수 있습니다. 루프에서 벡터의 크기를 수정하지 않으면 실제로 벡터의 크기가 변수에 저장되기 때문에 이 프로세스는 그렇지 않습니다. 매우 비싸다.