MyN*_*ame 2 c++ visual-studio visual-c++
例如,如果我使用数组的长度来确定 for 循环中的代码运行多少次,我是否应该在 for 循环的顶部初始化数组的计数,以便程序不会继续计算字符串?
一些打印数组中每个元素的简单代码:
不初始化数组的大小
int myArray[5] = { 1,2,3,4,5 };
for (int iPos = 0; iPos < size(myArray); ++iPos)
cout << myArray[iPos];
Run Code Online (Sandbox Code Playgroud)
在 for 循环之前初始化数组的大小
int myArray[5] = { 1,2,3,4,5 };
int sizeOfArray = size(myArray);
for (int iPos = 0; iPos < sizeOfArray; ++iPos)
cout << myArray[iPos];
Run Code Online (Sandbox Code Playgroud)
for (int iPos = 0; iPos < size(myArray); ++iPos)将计算myArray每次迭代的大小。如果循环体的大小可以改变,这可能很重要myArray。所以要小心。
如果大小myArray不能在循环改变,那么在循环之前提取计算为const int sizeOfArray = size(myArray); 可能获得你一个微小的性能一点,如果编译器不认识到这一点本身并吊计算出自身的循环。
一种更简单的方法是使用 range-for 循环,因为它们被定义为只计算一次大小:
for (const auto& element : myArray)
cout << element;
Run Code Online (Sandbox Code Playgroud)
然后你也不必担心sizeOfArray变量存在于循环外的范围内。
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |