python - 在 C++ 中循环 "all the way through"数组是否有最佳实践?

标签 python c++ c arrays for-loop

在 Python 中,可以使用以下代码将数组的每个元素与“下一个”元素(包括最后一个元素与第一个元素)进行比较:

a = [0, 1, 2, 3]
for i in range(-1, 3):
    if a[i] + 1 >= a[i+1]:    
        print a[i], 'works'

输出:

3 works
0 works
1 works
2 works

如果我想比较数组的第一个元素和第二个元素,第二个元素和第三个元素,等等,最后一个元素和第一个元素,我可以只用一个循环来完成在 Python 中。

我可以在 C++ 中执行此操作吗?我可以以这种方式循环遍历元素,同时完全保持在一个循环中吗?为了进一步说明我的意思,这里有一些 C++ 代码与上述 Python 代码具有相同的功能。

int a[] = {0, 1, 2, 3};
std::cout a[3] << std::endl;
for(int i = 0; i < 2; i++)
    std::cout << a[i] << std::endl;

它具有相同的输出。我的观点是,对于某些算法,我必须为某些步骤手动复制 for 循环的内容。例如,如果我想查看第一个元素是否等于第二个,第二个是否等于第三个,等等,最后如果最后一个等于第一个,我必须在我的 for 之后或之前手动添加此步骤 循环。 ---if (a[0] == a[3]) foo();

这是我应该用 C++ 做的吗?我对它很陌生,我不想 Root 于不良做法。

最佳答案

for (int i=3; i<(3 + size_of_array); ++i)
    std::cout << a[i % size_of_array] << '\n';

关于python - 在 C++ 中循环 "all the way through"数组是否有最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24944723/

相关文章:

python - 通过删除 NaN 并向左移动值以减少列数来压缩 pandas DataFrame 中的数据

c++ - 与动态库链接导致的可执行运行时崩溃

c - 尝试在 C 中创建具有所有权限的文件

c - 在给定的代码中,为什么第二个scanf()无法按预期工作?

python - 方程未显示在 Canvas 中

使用 p.stdout.read() stty 的 Python 脚本 : standard input: Invalid argument

python - 如何创建一个空的 pandas DataFrame,并为每列分配不同的数据类型?

c++ - 带有两个 C++ 文件的 Makefile : How can I choose the file to compile?

c++ - 具有无符号短整数的结构的大小

c - 位移位打印位改变C中的int?