将百万或十亿 STL 向量排序和连接成单个 STL 向量的最佳方法是什么?目前,我这样做的方式是迭代向量并执行每个操作。
这是伪代码
typedef unsigned long long int ULLInt;
ULLInt N = 1000000;
vector<vector<ULLInt> > vecVec( N, vector<ULLInt>() );
vector<ULLInt> concatVec;
// ...
// ... fill vectors inside vecVec here
// .. we also get here the total number of values inserted in all vectors (count)
// ...
// reserve the space
concatVec.reserve( count);
// sort each vector and concatenate them in sequence
for( ULLInt i=0; i<N; i++)
sort( vecVec[i].begin(), vecVec[i].end() );
concatVec.insert( concatVec.end(), vecVec[i].begin(), vecVec[i].end() );
end for
请注意,不需要对 concatVec 进行排序。感谢您的建议。