将指定索引处的数组元素左右移动一个位置的最有效算法是什么?
例如,将 [a,b,c,d,e,f] 的索引 [1,3,5] 向左移动以获得 [b,a,d,c,f,e]
如果新索引超出范围,我不希望它旋转,如果这有意义的话。
我正在使用 C++ std::vector 进行数组存储。
最佳答案
我将您的问题解释为根据索引交换数组的两个相邻条目。如果这是错误的,那么请用一个不正确的例子来澄清你的问题。
void swapElements(const std::vector<int>& indexes, std::vector<int>& array){
for(auto i : indexes){
if (i < 1 || i >= array.size()){
continue;
}
std::swap(array[i-1], array[i]):
}
}
关于c++ - 移动指定索引处的数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24539374/