#include <algorithm>
#include <iostream>
#include <vector>
bool IsDividedByThree (int i) { return ((i%3)==0); }
int RandomNumber () { return (rand()%100); }
int main()
{
std::vector<int> myInts(50);
std::generate(myInts.begin(), myInts.end(), RandomNumber);
std::copy(myInts.begin(), myInts.end(), std::ostream_iterator<int>(std::cout, " "));
myInts.erase(std::remove_if(myInts.begin(), myInts.end(), IsDividedByThree), myInts.end());
std::copy(myInts.begin(), myInts.end(), std::ostream_iterator<int>(std::cout, " "));
}
Разве не так приятно, что STL позаботится обо всем за вас?
Хм не видел комментарий,в котором один не использует STL.
Версия C:
int *temp = new int[NEW_SIZE];
memcpy( temp , old_array, size_of_old_array * sizeof(int) );
delete[] old_array;
old_array = temp;
- создает массив динамически
- создаетновый массив с новым размером
- скопировать элементы из первого во второй массив
- удалить первый массив
- перенаправить указатель на первый массив во второй
Все эти ответы Итак, как лучше всего уменьшить размер массива? - Я предполагал, что вы уже знаете, как решить остальную часть вашей проблемы.