python - C++:仅在具有指定索引的元素中查找数组中的最小值

标签 python c++ arrays lambda minimum

我找不到以下问题的解决方案:

我试图找到 C++ 数组中的最小值,但不查看内部的所有元素,只查看具有指定索引的元素。 例如,如果给定一个索引 k 和一个数组 int* mylist = int[n],那么我只想在元素的“子列表”中查找 mylist 中的最小元素,其中例如各个元素 i 的索引满足 i%n = k。 在Python中,这可以通过以下方式轻松解决

min([mylist[i]  for i in range(n) if i%n==k]),

但是据我所知,C++ 中没有等效的东西。另外,据我所知,lambda 函数并不能解决问题。

知道如何有效地做到这一点吗?任何建议将不胜感激!

最佳答案

这是一个示例,说明为什么标准算法与迭代器一起使用,而不是直接与容器/集合一起使用。它允许您编写一个包含您关心的索引的迭代器。

问题在于,编写迭代器的工作量超出了大多数人的预期,或者认为对于这个简单的任务来说是合理的。 Boost 有一些实用程序可以更轻松地实现迭代器,例如 filter iterator ,但据我所知,这些仅基于集合的内容应用,而不是索引。

创建 index_filter 所涉及的代码相当简单(例如,应该很容易从上面链接的 filter_iterator 代码中推断出来),但是还有更多的锅炉 -那里的盘子比大多数人想要的还要多。除非您经常做这样的事情,否则可能很难证明其合理性。

关于python - C++:仅在具有指定索引的元素中查找数组中的最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46892857/

相关文章:

python - Popen 和 python

python - 快速查找最近更改的文件

c++ - _beginthreadex 内存泄漏

c++ - 在头文件c++中声明数组结构时出错

javascript - 在没有递归的情况下展平多个嵌套数组的数组 - javascript

python - 对正则表达式中的匹配项和不匹配项进行分组

python - pyephem next_pass 不匹配天堂之上

android - 在 Android 上使用 Instrumentation 进行 Clang 分析

java - 列表.add ("stuff");崩溃

c - 我的数组函数未返回变量