【发布时间】:2020-01-20 10:56:23
【问题描述】:
我想在 C++ 中实现 numpy.ndindex 的等价物。它应该为指定维度的多维数组生成索引。
这是二维数组的实现。
template <typename T>
inline auto NDIndex(T d0, T d1) {
using namespace ranges;
return views::cartesian_product(views::indices(d0), views::indices(d1));
}
// Usage
for (const auto[i1, i2] : NDIndex(5, 4)) {
arr[i1][i2] = ...
}
我想在不牺牲性能的情况下将其推广到任意数量的维度。我可以在界面中使用大括号,例如NDIndex({5, 4})。我可以想到多种解决方案,但我不确定哪个会静态解决这个问题。
【问题讨论】: