传递一个向量作为递归函数的引用

Passing a vector as a reference to a recursive function

本文关键字:递归函数 引用 向量 一个      更新时间:2023-10-16

我已经构建了一个函数,它接受对vector的引用作为参数,它看起来像这样:

void func(std::vector<int> &vec) {
   // sth. to do
}

但是我希望这个函数是递归的,并且用原向量的一部分调用自己。

void func(std::vector<int> &vec) {
    // sth. to do
    func(part of the orignial vector);
}

我如何从原来的向量构造一个新的向量?重要的是,当我在递归调用中修改向量的部分时,原始向量"vec"也发生了这种变化,所以我不想传递一个副本或新向量。谢谢你的帮助。

老方法!

void func(std::vector<int> &vec,int l,int r) {
    // this function modifies only vec fro indices l to r. 
    //
    // do what you want
    //
    //
    func(vec,new_l,new_r);
}