猿问

从向量中提取子向量的最佳方法?

假设我有一个std::vectormyVec大小)N。构造包含元素X到Y的副本的新矢量的最简单方法是什么,其中0 <= X <= Y <= N-1?例如,myVec [100000]通过myVec [100999]size的向量150000

如果使用向量无法有效完成此操作,是否应该使用另一种STL数据类型呢?


月关宝盒
浏览 756回答 3
3回答

qq_笑_17

vector<T>::const_iterator first = myVec.begin() + 100000;vector<T>::const_iterator last = myVec.begin() + 101000;vector<T> newVec(first, last);构造新向量是O(N)操作,但实际上没有更好的方法。

慕妹3146593

只需使用向量构造函数即可。std::vector<int>&nbsp; &nbsp;data();// Load Z elements into data so that Z > Y > Xstd::vector<int>&nbsp; &nbsp;sub(&data[100000],&data[101000]);
随时随地看视频慕课网APP
我要回答