Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <algorithm>
- #include <iostream>
- int max_numbers;
- int current_numbers;
- int *numbers;
- void print_numbers() {
- for(int i=0; i<current_numbers; ++i) {
- std::cout << "numbers[" << i << "] = " << numbers[i] << '\n';
- }
- std::cout << '\n';
- }
- void add_number(int number) {
- numbers[current_numbers++] = number;
- }
- void remove_number(int index) {
- // Copy elements of the array after index on top of index
- std::copy(numbers+index+1, numbers+current_numbers, numbers+index);
- // Decrement count
- --current_numbers;
- // Check if we need to resize...
- if(max_numbers - current_numbers > 5) {
- // We need to resize
- max_numbers = current_numbers; // Store new max (can change this, idk what is wanted)
- int *tmp = numbers; // Temp copy of pointer to old array
- numbers = new int[max_numbers]; // Allocate memory for new array
- std::copy(tmp, tmp+current_numbers, numbers); // Copy old array into new array
- delete[] tmp; // Free memory for old array
- }
- }
- int main() {
- // Initial values, this stuff will be done in the constructor...
- numbers = new int[5];
- max_numbers = 5;
- current_numbers = 0;
- // Fill up the array...
- for(int i=0; i<5; ++i) {
- add_number(i);
- }
- // Display numbers in the array
- print_numbers();
- // Remove the number at index 2 (i.e. numbers[2])
- remove_number(2);
- print_numbers();
- // Remove the number at index 0 (i.e. numbers[0])
- remove_number(0);
- print_numbers();
- // Remove the number at index 2 (i.e. numbers[2])
- remove_number(2);
- print_numbers();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement