如果您事先知道向量的确切大小,则可以只创建一个大vector
向量,然后迭代大向量的不同部分,例如:
std::vector<Point> data;
data.resize(totalSize); // totalSize is the sum of the sizes of the individual vectors
generatePart1(data.begin(), data.begin() + sizeOfPart1);
generatePart2(data.begin() + sizeOfPart1, data.begin() + sizeOfPart1 + sizeOfPart2);
// ...
iteratePart1(data.begin(), data.begin() + sizeOfPart1);
//...
//You don't need to splice the vectors now anymore, it's one big vector already.
如果您无法提前知道确切的大小,或者不喜欢这种方法,您仍然可以使用std::vector::reserve提前保留至少大部分存储,然后使用迭代的智能迭代器依次对所有单个向量进行拼接。