I have a problem that I would like to merge a large number of images using ImageMagick\'s convert.exe, but under Windows I have a 8192 byte long command line limit.
Here is my solution:
template
std::vector> SplitVector(const std::vector& vec, size_t n)
{
std::vector> outVec;
size_t length = vec.size() / n;
size_t remain = vec.size() % n;
size_t begin = 0;
size_t end = 0;
for (size_t i = 0; i < std::min(n, vec.size()); ++i)
{
end += (remain > 0) ? (length + !!(remain--)) : length;
outVec.push_back(std::vector(vec.begin() + begin, vec.begin() + end));
begin = end;
}
return outVec;
}