c++怎么取vector区间的元素?

有没有现成的STL函数可以直接取得vector某区间的元素,比如{1,4,3,2,5}在[1,3]区间的元素为{4,3,2},且返回值为也是vector类。还是只能自己写... 有没有现成的STL函数可以直接取得vector某区间的元素,比如{1, 4, 3, 2, 5}在[1, 3]区间的元素为{4, 3, 2},且返回值为也是vector类。还是只能自己写函数? 展开
 我来答
幻形术
2022-10-10 · TA获得超过1262个赞
知道小有建树答主
回答量:994
采纳率:81%
帮助的人:264万
展开全部
std::vector<int> v{1,2,3,4,5}; //源vevtor
std::vector<int> result(3);    //复制的目标vector,初始有3个默认值。
std::copy(v.begin() + 1,v.begin() + 3,result.begin()); //区间拷贝

上面的是std::copy是现成的,目标vector是已经存在的,且有元素,因为std::copy内部不是调用push_back, 而是元素覆盖。

还有更简单点的。

std::vector<int> v{1,2,3,4,5}; //源vevtor
std::vector<int> result(v.begin() + 1,v.begin() + 3); //利用vector的构造函数就可以了

可以自己封装成函数:

template<typename T>
std::vector<T> RangeCopy(const std::vector<T>& v,int startIndex, int count)
{
    return std::vector<T>(v.begin() + startIndex,v.begin() + count);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式