這是我的第一個問題,我很高興能成爲社區的一員。從陣列中移除元素,然後移動其他元素
我被激發到在這裏貼上去除功能的嚴重問題。我試圖刪除使用索引和計數關鍵字我試圖從數組中刪除元素的條。我在紙上畫出了不同的場景,但沒有發現明顯的模式,所以我不得不在這裏問。
比方說,你有 char array[] = {'A','B','C','D','E'};
我的函數刪除了這個原型 void remove(char arr[], int& size, int element, int count)
如果一個人寫的,有規模已經宣佈,remove(array, size, 2, 2)
那麼如果打印陣列必須打印ABE。該函數必須轉到索引2,然後刪除兩個元素,然後將其他元素轉移。
這裏是我想實現的功能:
void remove(char arr[], int& size, int element, int count) {
for (int i = element; i < count; i++) {
arr[element] = arr[element + 1];
}
size = size - count; }
我可以寫,以適應具體的測試用例的功能,但我不能概括它爲所有不同的輸入工作。我相當肯定size = size - count;
是正確的,因爲它始終如一地「移除」適當數量的元素,但我不是100%確定的。
如何正確實現此功能?我看到其他人也提出過類似的問題,但不是一次性刪除潛在的多個元素。我對矢量的知識也是零,我不認爲使用它們可以用於我的其他程序。
就基本上看到了同樣的問題昨天: http://stackoverflow.com/q/26434416/103167 – 2014-10-18 18:47:43
哦,我更新;沒有什麼在這個問題看起來很熟悉:) – RealTimeDouble 2014-10-18 19:07:20