为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C++
月关宝盒 2019-10-14 15:18:38
假设我有一个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)操作,但实际上没有更好的方法。


查看完整回答
反对 回复 2019-10-14
?
慕妹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]);


查看完整回答
反对 回复 2019-10-14
  • 3 回答
  • 0 关注
  • 725 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信