Also schreibe ich ein paralleles Programm (boost.mpi) und ich möchte Teile eines Vektors übergeben (wie in std :: vector), die zusammengebaut werden können ein ganzer Vektor.Ergreifen Sie einen "sub" -Vektor und "verketten" Vektoren
Um dies zu tun, ich möchte 2 Dinge zu tun in der Lage:
greifen ein Stück eines vector- also sagen, ein Vektor 800 Elemente hat, was der beste Weg ist, um dann zu machen ein Subvektor, der die Elemente 200-299 enthält (oder beliebige Indizes, die durch 2 int-Variablen definiert sind)?
Ich möchte einen Operator erstellen, mit dem ich Vektoren hinzufügen kann, um einen neuen, längeren Vektor zu erstellen. Grundsätzlich möchte ich die gleiche Funktionalität, die std :: plus() (kann verketten Strings) gibt, aber für Vektoren. Ich muss in der Lage sein, diesen Operator als einen binären Operator zu übergeben (er müsste den gleichen Typ wie std :: plus() haben).
Jede Hilfe mit diesem würde sehr geschätzt werden. kann
template <class InputIterator>
vector(InputIterator first, InputIterator last,
const Allocator& alloc = Allocator());
Der zweite Teil erreicht werden vector::insert
verwenden, aber es ist wahrscheinlich eine bessere Art und Weise:
Für den ersten Teil gibt es einen Konstruktor, der Bereiche verwendet. Nicht sicher, ob es einen besseren Weg gibt, aber 'vector vSub (vMain.begin() + 200, vMain.begin() + 299);' sollte funktionieren. –
chris
Ah, ja natürlich. Ich hatte diesen Konstruktor vergessen. Ich denke, das sollte gut funktionieren. Danke – Kyle