Форум программистов, компьютерный форум CyberForum.ru

Удалить последний элемент массива - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.80
ugodaj
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 42
10.01.2013, 11:41     Удалить последний элемент массива #1
Может кто помочь как можно удалить последний элемент массива, токо не используя встроеных стеков деков списков и .т.д ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
10.01.2013, 11:48     Удалить последний элемент массива #2
Если память под массив была выделена динамически, то нужно перевыделить память под массив на один элемент меньше. Иначе никак.
ugodaj
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 42
10.01.2013, 12:21  [ТС]     Удалить последний элемент массива #3
А можете пример кода прислать, Да память динамическая!
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,831
Записей в блоге: 2
Завершенные тесты: 1
10.01.2013, 12:30     Удалить последний элемент массива #4
Ну если удаляете последний элемент, то можете просто уменьшить переменную в которой хранится размер массива.
Fareiro
15 / 15 / 1
Регистрация: 06.12.2012
Сообщений: 130
10.01.2013, 12:31     Удалить последний элемент массива #5
C++
1
2
3
for(int i=0; i<size; i++) 
if(a[i]%2!=0) 
a[i]=a[newsize++];
как-то так
palva
 Аватар для palva
2372 / 1594 / 190
Регистрация: 08.06.2007
Сообщений: 6,362
Записей в блоге: 4
10.01.2013, 12:42     Удалить последний элемент массива #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
int main() {
    int *a, *t, i;
    int n=8;
    a = new int[n];
    for(i=0; i<n; i++)
        a[i]=(i-5);
    cout << a[n-2] << endl;
    t = new int[n-1];
    for(i=0; i<n-1; i++)
        t[i]=a[i];
    delete a;
    a=t;
    cout << a[n-2] << endl;
    delete a;
    return 0;
}
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
10.01.2013, 12:43     Удалить последний элемент массива #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <algorithm>
 
template < typename T >
T* resize(T *ptr, std::size_t old_size, std::size_t new_size)
{
    T *buffer = new T[new_size];
    std::memcpy(buffer, ptr, std::min(old_size, new_size) * sizeof(T));
    delete [] ptr;
    return ptr = buffer;
}
 
int main()
{
    int *p = new int[3];
    for (int i = 0; i < 3; i++)
        std::cout << (p[i] = i) << ' ';
    p = resize(p, 3, 2);
    std::cout << std::endl;
    for (int i = 0; i < 2; i++)
        std::cout << p[i] << ' ';
    delete [] p;
    std::cout << std::endl;
    return 0;
}
ugodaj
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 42
16.01.2013, 13:09  [ТС]     Удалить последний элемент массива #8
Спасибо, а может кто написать алгоритм как удалить последний элемент динамического массива?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2013, 13:17     Удалить последний элемент массива
Еще ссылки по теме:

C++ Задача Иосифа Флавия. Удалить каждый второй элемент из списка и в конце вывести на экран последний оставшийся элемент
C++ Заменить последний положительный элемент массива на второй элемент массива
C++ Заменить последний положительный элемент одномерного массива на второй элемент массива

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
16.01.2013, 13:17     Удалить последний элемент массива #9
ugodaj, вглядитесь внимательно в мой предыдущий пост
Yandex
Объявления
16.01.2013, 13:17     Удалить последний элемент массива
Ответ Создать тему
Опции темы

Текущее время: 10:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru