我有,我想合併大量使用ImageMagick的CONVERT.EXE圖像的問題,但在Windows下我有一個8192字節長的命令行限制。如何將矢量分成N「幾乎相等」的部分
我的這個解決方案是將任務分割成更小的子任務,運行它們,並做它結合在一起最後的任務。
我的想法是寫一個函數,該函數的圖像和一個整數的向量,並分割所述載體引入n個子矢量全部具有「幾乎相等」的部分。
因此,舉例來說,如果我想11分成3組,這將是4-4-3。
你能告訴我,我怎麼能做到這一點在C++?我的意思是,寫一個函數
split_vec(const vector<image> &images, int split)
哪個分裂?
另外,你能告訴我什麼是最有效的方法嗎如果我不需要創建新的向量,只需遍歷子部分?像std::substr
功能與std::string
?
注:我已經使用了升壓的項目,所以如果在加速這一一些很好的工具,然後它非常適合我。
謝謝,這裏是我想出的:double loop = number/parts; for(int i = 0; i
zsero
@zsero,如果'number'和'parts'都是整數,則在進行除法之前,需要將1轉換爲2。你也需要擔心舍入誤差,有些情況下,當你轉換回整數時,你可能會遇到一個錯誤的錯誤。 –
其實我在函數定義中使用了雙精度,而在起始和結束時使用了round()函數。你認爲使用round()函數時可能會出現舍入誤差嗎? (我使用stringstream來輪) – zsero