Как в этом случае правильно соединять vector'а?
Есть алгоритм быстрой сортировки, как мне правильно реализовать return, чтобы рекурсия работала?
#include <vector>
#include <iostream>
#include <string>
template<typename T>
void print(T arr) {
if (arr.empty()) {
std::cout << "Array is empty.";
return;
}
std::cout << "[";
std::cout << arr[0];
for (int i = 1; i < arr.size(); i++) {
std::cout << " " << arr[i];
}
std::cout << "]";
}
template<typename T>
std::vector<T> sort(std::vector<T> arr) {
if (arr.size() < 2) {
return arr;
}
std::vector<T> pivot(1, arr[0]);
std::vector<T> left = {};
std::vector<T> right = {};
for (int i = 0; i < arr.size(); i++) {
if (arr[i] <= pivot[0]) {
left.push_back(arr[i]);
}
else if (arr[i] > pivot[0]) {
right.push_back(arr[i]);
}
}
return sort(left) + pivot + sort(right);
}
int main() {
std::vector<int> arr = { 124, 23, 21, 123, 6, 3 };
std::vector<int> sortedArray = sort<int>(arr);
print(sortedArray);
return 0;
}