【发布时间】:2019-01-30 18:22:17
【问题描述】:
我正在尝试将一组角度填充到另一个具有更多元素的角度:
uint16_t _sector[SECTORS_MAX] = {0, 45, 90, 135, 180, 225, 270, 315};
我的想法是,我有另一个包含 72 个元素的数组,而上面的这个只有 8 个元素,上面的每个角度代表一个扇区,因此 72 个元素的数组每个扇区将有 9 个角度而不是一个,其中每个9个角代表一个扇区。我如何制作一个能够做到这一点的循环?
【问题讨论】:
-
"我如何制作一个能够做到这一点的循环?" - 究竟做了什么?你想达到什么目标?您解释了您的数据结构,然后询问如何设法做到这一点,但仍然没有提供实际任务。请详细说明
-
为什么不直接使用
std::vector? -
默认情况下,我有一个数组,它消耗 8 个角度,代表距离传感器的 8 个不同扇区,每个角度是中心的中心角,宽度为 45 度,我想使用另一个驱动程序对于这个传感器,其中扇区总数为 72,因此 72 个角度代表它的中间。但是我仍然不想扩展现有的阵列,因为我想安排 72 个扇区,其中前 9 个属于原始阵列的第 1 个扇区,即 0,依此类推。
-
目前还不清楚你在问什么。你能以某种方式让它更清楚吗?你想怎么比较?
-
我很困惑。所以你想要一个数组,其元素按
360/72 = 5的值递增?std::vector<int> v(72); std::iota(v.begin(), v.end(), 0); std::transform(v.begin(), v.end(), v.begin(), [](int i) { return i * 5; });够用吗?