Mam problem, że chciałbym scalić dużą liczbę obrazów przy użyciu programu convert.exe ImageMagick, ale w systemie Windows mam limit wiersza poleceń wynoszący 8192 bajtów.Jak podzielić wektor na n "prawie równe" części
Moim rozwiązaniem jest podzielenie zadania na mniejsze pod-zadanie, uruchomienie i wykonanie końcowego zadania, które je łączy.
Mój pomysł polega na napisaniu funkcji, która pobiera wektor obrazów i liczbę całkowitą, i dzieli wektor na n pod-wektor, wszystkie mające "prawie równe" części.
Na przykład, jeśli chciałbym podzielić 11 na 3 grupy, byłoby to 4-4-3.
Czy możesz mi powiedzieć, jak mogę to zrobić w C++? Mam na myśli, aby napisać funkcję
który dzieli?
Czy możesz mi powiedzieć, jaki jest najskuteczniejszy sposób na wykonanie , jeśli nie potrzebuję tworzyć nowych wektorów, po prostu przejrzyj pod-części? Podobnie jak funkcja std::substr
z std::string
?
Uwaga: Korzystam już z Boost w projekcie, więc jeśli jest w nim trochę fajnego narzędzia, to jest to dla mnie idealne.
Dzięki, oto co wymyślę: podwójna pętla = liczba/części; for (int i = 0; i
zsero
@zsero, jeśli zarówno 'liczba' jak i' części' są liczbami całkowitymi, musisz przekonwertować jeden do podwójnego przed wykonaniem podziału. Ponadto musisz się martwić o błąd zaokrąglania, istnieją przypadki, w których możesz uzyskać błąd "jeden po drugim", gdy konwertujesz z powrotem na liczbę całkowitą. –
Właściwie używam podwójnych w definicji funkcji i funkcji round() dla początku i końca. Czy sądzisz, że przy użyciu funkcji round() można mieć błąd roundoff? (Używam stringstream do rundy) – zsero