Я построить функцию, которая принимает ссылку на вектор в качестве аргумента, это выглядит следующим образом:Передача вектора в качестве ссылки на рекурсивную функцию
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» также изменяется, поэтому я не хотел передавать копию или новый вектор. Спасибо за помощь.
Пройдите пару итераторов. Так действуют все [стандартные алгоритмы] (http://en.cppreference.com/w/cpp/algorithm). Тогда легко передать любой поддиапазон исходного диапазона ввода. – BoBTFish
Или «старый путь», вы можете передавать начальные и конечные индексы вместе с массивом. –
или с [range-v3] (https://ericniebler.github.io/range-v3/), передайте * диапазон * вместо вектора – Jarod42