假设我有一个std::vector(myVec大小)N。构造包含元素X到Y的副本的新矢量的最简单方法是什么,其中0 <= X <= Y <= N-1?例如,myVec [100000]通过myVec [100999]size的向量150000。如果使用向量无法有效完成此操作,是否应该使用另一种STL数据类型呢?
3 回答
qq_笑_17
TA贡献1818条经验 获得超7个赞
vector<T>::const_iterator first = myVec.begin() + 100000;
vector<T>::const_iterator last = myVec.begin() + 101000;
vector<T> newVec(first, last);
构造新向量是O(N)操作,但实际上没有更好的方法。
慕妹3146593
TA贡献1820条经验 获得超9个赞
只需使用向量构造函数即可。
std::vector<int> data();
// Load Z elements into data so that Z > Y > X
std::vector<int> sub(&data[100000],&data[101000]);
- 3 回答
- 0 关注
- 755 浏览
添加回答
举报
0/150
提交
取消