Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. #include <algorithm>
  2. #include <iostream>
  3.  
  4. int max_numbers;
  5. int current_numbers;
  6. int *numbers;
  7.  
  8. void print_numbers() {
  9. for(int i=0; i<current_numbers; ++i) {
  10. std::cout << "numbers[" << i << "] = " << numbers[i] << '\n';
  11. }
  12. std::cout << '\n';
  13. }
  14.  
  15. void add_number(int number) {
  16. numbers[current_numbers++] = number;
  17. }
  18.  
  19. void remove_number(int index) {
  20. // Copy elements of the array after index on top of index
  21. std::copy(numbers+index+1, numbers+current_numbers, numbers+index);
  22.  
  23. // Decrement count
  24. --current_numbers;
  25.  
  26. // Check if we need to resize...
  27. if(max_numbers - current_numbers > 5) {
  28. // We need to resize
  29. max_numbers = current_numbers; // Store new max (can change this, idk what is wanted)
  30. int *tmp = numbers; // Temp copy of pointer to old array
  31. numbers = new int[max_numbers]; // Allocate memory for new array
  32. std::copy(tmp, tmp+current_numbers, numbers); // Copy old array into new array
  33. delete[] tmp; // Free memory for old array
  34. }
  35. }
  36.  
  37. int main() {
  38. // Initial values, this stuff will be done in the constructor...
  39. numbers = new int[5];
  40. max_numbers = 5;
  41. current_numbers = 0;
  42.  
  43. // Fill up the array...
  44. for(int i=0; i<5; ++i) {
  45. add_number(i);
  46. }
  47.  
  48. // Display numbers in the array
  49. print_numbers();
  50.  
  51. // Remove the number at index 2 (i.e. numbers[2])
  52. remove_number(2);
  53. print_numbers();
  54.  
  55. // Remove the number at index 0 (i.e. numbers[0])
  56. remove_number(0);
  57. print_numbers();
  58.  
  59. // Remove the number at index 2 (i.e. numbers[2])
  60. remove_number(2);
  61. print_numbers();
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement