在C++中,可以通过以下几种方法对切片进行逆序操作:
std::vector<int> vec = {1, 2, 3, 4, 5}; std::reverse(vec.begin() + 1, vec.end() - 1); // 对下标为1到倒数第二个元素进行逆序操作
template <typename T> void reverseSlice(std::vector<T>& vec, int start, int end) { std::reverse(vec.begin() + start, vec.begin() + end); } std::vector<int> vec = {1, 2, 3, 4, 5}; reverseSlice(vec, 1, 4); // 对下标为1到3的元素进行逆序操作
template <typename T> void reverseSlice(std::vector<T>& vec, int start, int end) { if (start >= end) { return; } std::swap(vec[start], vec[end]); reverseSlice(vec, start + 1, end - 1); } std::vector<int> vec = {1, 2, 3, 4, 5}; reverseSlice(vec, 1, 4); // 对下标为1到3的元素进行逆序操作