Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <ctime>
- template<class T1, class T2>
- void FillArray(T1 *arr, T2 size);
- template<class T1, class T2>
- void ShawArray(T1 *arr, T2 size);
- template<class T1, class T2, class T3, class T4>
- void push_back(T1 *&arr, T2 &size, const T3 place, const T4 value) {
- T1 *newArray = new T1[size + 1];
- if (place == 0) {
- for (int i = 1; i < size + 1; i++) {
- newArray[i] = arr[i - 1];
- }
- }
- else if (place == size - 1) {
- for (int i = 0; i < place; i++) {
- newArray[i] = arr[i];
- }
- newArray[size] = arr[size - 1];
- }
- else if (place == size) {
- for (int i = 0; i < size; i++) {
- newArray[i] = arr[i];
- }
- }
- else {
- for (int i = 0; i < place; i++) {
- newArray[i] = arr[i];
- }
- for (int i = place + 1; i < size + 1; i++) {
- newArray[i] = arr[i - 1];
- }
- }
- newArray[place] = value;
- size++;
- delete[]arr;
- arr = newArray;
- }
- template<class T1, class T2, class T3>
- void pop_back(T1 *&arr, T2 &size, const T3 place) {
- size--;
- T1 *newArray = new T1[size];
- if (place == 0) {
- for (int i = 0; i < size; i++) {
- newArray[i] = arr[i + 1];
- }
- }
- else if (place == size + 1) {
- for (int i = 0; i < size; i++) {
- newArray[i] = arr[i];
- }
- }
- else {
- for (int i = 0; i < place; i++) {
- newArray[i] = arr[i];
- }
- for (int i = place + 1; i < size + 1; i++) {
- newArray[i - 1] = arr[i];
- }
- }
- delete[]arr;
- arr = newArray;
- }
- int main() {
- setlocale(LC_ALL, "ru");
- srand(time(NULL));
- int size, place, num;
- std::cout << "Введите размер массива ";
- std::cin >> size;
- if (size == 0) {
- return 0;
- }
- int *arr = new int[size];
- FillArray(arr, size);
- ShawArray(arr, size);
- do {
- std::cout << "Где нужно разместить значение(0-" << size << ")? ";
- std::cin >> place;
- } while (place > size || place < 0);
- std::cout << "Какое значение добавить? ";
- std::cin >> num;
- push_back(arr, size, place, num);
- ShawArray(arr, size);
- do {
- std::cout << "Какой элемент нужно удалить(0-" << size - 1 << ")? ";
- std::cin >> place;
- } while (place > (size-1) || place < 0);
- pop_back(arr, size, place);
- ShawArray(arr, size);
- delete[] arr;
- arr = nullptr;
- system("pause");
- }
- template<class T1, class T2>
- void FillArray(T1 *arr, T2 size) {
- for (int i = 0; i < size; i++) {
- arr[i] = rand() % size;
- }
- }
- template<class T1, class T2>
- void ShawArray(T1 *arr, T2 size) {
- for (int i = 0; i < size; i++) {
- std::cout << arr[i] << "\t";
- }
- std::cout << std::endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment