我是新來的C++,我試圖做一件很容易的事情,在Python中使用切片列表, ,但我找不到在C++中做到這一點的簡單方法。從給定位置開始的重排序陣列,C++
我需要重新排列一個數組以開始給定元素,如: int array [] = {1,2,3,4,5}; 重新排序陣列開始在單元3: {3,4,5,1,2}
這是我發現做到這一點的方式,但它似乎是一個有點矯枉過正:
void Graph::reorder(int x, MIntArray ¤tArray)
{
MIntArray reorderedIndices;
int index;
for (unsigned int i=0; i<currentArray.length();i++){if(currentArray[i]==x){index=i;}} // get the index
for (unsigned int i=index; i<currentArray.length();i++){reorderedIndices.append(currentArray[i]);} // zero to index
for (unsigned int i=0; i<index;i++){reorderedIndices.append(currentArray[i]);} // index to last
for (unsigned int i=0; i<currentArray.length();i++){currentArray.set(reorderedIndices[i],i);} // transfer
}
任何幫助將不勝感激!
感謝
路易斯
什麼庫MIntArray而來?該課程的細節與開發更好的解決方案相關。你也沒有明確地提出一個問題。 –