我需要堆栈溢出的意见来解决我脑海中关于循环效率的问题。现在,当我开始编程时,“让它工作”是一个重中之重,我的大多数 for 循环看起来都是这样的。
for (int i = 0; i < N; i++) {;}
然后我很紧张,尤其是在 C++ 开发中,预增量可以为您节省一些调用,并且考虑到这将是 N 个调用并且它不会改变我习惯的可读性。
for (int i = 0; i < N; ++i) {;}
这在一段时间内已经足够好了,但专注于可读性,在阅读了 Steve McConnell 的一些 Code Complete 之后,我明白了这一点。
for (int loop_index = 0; loop_index < loop_count; ++loop_index) {;}
这些变量会根据代码的上下文而变化。然后我阅读了一些关于内置类型构造函数和赋值的 Effective C++。基本上这之间的区别
int i = 42;
和
int i(42);
是不是前者调用了构造函数和赋值运算符,而后者只调用了构造函数。所以我在编码时把它纳入了我的日常工作。所以我的问题是,这是编写 for 循环的最有效和可读的方式:
for (int loop_index(0); loop_index < loop_counter; ++loop_index) {;}