Wie teilt man einen Vektor in n "fast gleich" teilen

Ich habe ein problem, ich würde gerne Zusammenführen einer großen Anzahl von Bildern mit ImageMagick ' s convert.exe aber unter Windows habe ich einen 8192 byte langer Befehl Zeile beschränkt.

Meine Lösung ist die Aufteilung der Aufgabe in kleinere sub-Aufgabe, die Sie ausführen, und führen Sie eine Letzte Aufgabe, die kombiniert Sie zusammen.

Meine Idee ist das erstellen einer Funktion, die einen Vektor, der die Bilder und ein integer ist, und zerlegt den Vektor in n sub-Vektor alle "fast gleich" teilen.

So zum Beispiel, wenn ich möchte split 11 in 3 Gruppen wäre es 4-4-3.

Können Sie mir sagen, wie kann ich es in C++? Ich meine, um eine Funktion schreiben, die

split_vec( const vector<image> &images, int split )

die nicht der Spaltung?

Auch, können Sie mir sagen, was ist der effizienteste Weg, dies zu tun , wenn ich nicht brauchen, um erstellen Sie neue Vektoren, nur Durchlaufen und die sub-Teile? Wie die std::substr Funktion mit std::string?

Anmerkung: ich habe schon die Verwendung von Boost in das Projekt, so dass, wenn es gibt einige nette tool in Boost für dieses, dann ist es für mich perfekt.

InformationsquelleAutor hyperknot | 2011-07-28
Schreibe einen Kommentar