我有一个问题,我想使用ImageMagick的convert.exe合并大量图像,但在Windows下我有一个8192字节长的命令行限制。
我的解决方案是将任务分割成较小的子任务,运行它们,然后进行最终任务,将它们组合在一起。
我的想法是编写一个函数,该函数接受一个图像矢量和一个整数,并将矢量拆分为n个子矢量,每个子矢量都具有“几乎相等”的部分。
例如,如果我想将11分成3组,则应为4-4-3。
你能告诉我如何使用C ++实现它吗? 我的意思是编写一个函数。
split_vec( const vector<image> &images, int split )
哪个函数进行分割?此外,如果我不需要创建新的向量,只需迭代子部分,您能告诉我最有效的方法是什么?就像使用 std::string 的 std::substr 函数一样?
注意:我已经在项目中使用了 Boost,所以如果 Boost 中有一些好的工具可用于此,则对我来说是完美的。
number
和parts
都是整数,那么在进行除法运算之前,您需要将其中一个转换为double类型。此外,您还需要注意四舍五入误差,有些情况下,当您转换回整数时可能会出现偏差。 - Mark Ransom