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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kiberg_boy
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 7
#1

Реализовать приложение, содержащее функции добавления нового элемента в массив и удаления элемента из массива. (Имитируется “резиновый” массив) - C++

02.03.2013, 01:17. Просмотров 643. Ответов 9
Метки нет (Все метки)

Реализовать приложение, содержащее функции добавления нового элемента в массив и удаления элемента из массива. (Имитируется “резиновый” массив)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2013, 01:17     Реализовать приложение, содержащее функции добавления нового элемента в массив и удаления элемента из массива. (Имитируется “резиновый” массив)
Посмотрите здесь:
Ошибка при вызове функции добавления нового элемента в массив C++
Написать функции добавления и удаления произвольного элемента динамического массива C++
После каждого четного элемента массива вставить 2 элемента с тем же значением, полученный массив отсортировать C++
Вставка нового элемента в массив C++
C++ Добавление нового элемента в массив объектов C++
C++ Вставка нового элемента в массив (дополнить код)
Создать массив указателей с возможностью удаления любого элемента C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
13051 / 7314 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
02.03.2013, 01:17     Реализовать приложение, содержащее функции добавления нового элемента в массив и удаления элемента из массива. (Имитируется “резиновый” массив) #2
На подобии std::vector?
Kiberg_boy
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 7
02.03.2013, 02:57  [ТС]     Реализовать приложение, содержащее функции добавления нового элемента в массив и удаления элемента из массива. (Имитируется “резиновый” массив) #3
Цитата Сообщение от Croessmah Посмотреть сообщение
На подобии std::vector?
ага
MrGluck
Модератор
Эксперт CЭксперт С++
7162 / 4328 / 632
Регистрация: 29.11.2010
Сообщений: 11,750
02.03.2013, 03:08     Реализовать приложение, содержащее функции добавления нового элемента в массив и удаления элемента из массива. (Имитируется “резиновый” массив) #4
Ограничения есть?
Если все на std::list реализовать? Для добавления/удаления более чем хватит. А вот [] будет уже иметь линейное время работы.
Kiberg_boy
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 7
02.03.2013, 20:03  [ТС]     Реализовать приложение, содержащее функции добавления нового элемента в массив и удаления элемента из массива. (Имитируется “резиновый” массив) #5
Цитата Сообщение от MrGluck Посмотреть сообщение
Ограничения есть?
Если все на std::list реализовать? Для добавления/удаления более чем хватит. А вот [] будет уже иметь линейное время работы.
нету

Добавлено через 8 часов 28 минут
ну поможете ктонебуть
MrGluck
Модератор
Эксперт CЭксперт С++
7162 / 4328 / 632
Регистрация: 29.11.2010
Сообщений: 11,750
02.03.2013, 22:58     Реализовать приложение, содержащее функции добавления нового элемента в массив и удаления элемента из массива. (Имитируется “резиновый” массив) #6
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
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <list>
#include <cstddef>
#include <vector>
 
template<typename T>
class MyVector
{
    public:
        MyVector() : l_(), size_(0) {}
        T* begin() noexcept { return l_.begin(); }
        const T* begin() const noexcept { return l_.begin(); }
        void clear() noexcept { l_.clear(); }
        bool empty() const noexcept { return size_ == 0; }
        T* end() noexcept { return l_.end(); }
        const T* end() const noexcept { return l_.end(); }
        void push_back(const T& data) { l_.push_back(data); size_++; }
        void pop_back() { if (size_) { l_.pop_back(); size_--; } }
        std::size_t size() const noexcept { return size_; }
 
    protected:
        std::list<T> l_;
        std::size_t size_;
};
 
int main()
{
    MyVector<int> v;
    v.pop_back();
    v.push_back(2);
    std::cout << v.size();
    v.pop_back();
    std::cout << v.size();
    v.pop_back();
    std::cout << v.size();
}
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
02.03.2013, 23:26     Реализовать приложение, содержащее функции добавления нового элемента в массив и удаления элемента из массива. (Имитируется “резиновый” массив) #7
Цитата Сообщение от MrGluck Посмотреть сообщение
Если все на std::list реализовать?
А смысл тогда это вообще делать? Учебные задания на то и учебные, чтобы самому реализовать все эти vector/list/queue/..., а не смотреть на них как на чёрные ящики
MrGluck
Модератор
Эксперт CЭксперт С++
7162 / 4328 / 632
Регистрация: 29.11.2010
Сообщений: 11,750
02.03.2013, 23:44     Реализовать приложение, содержащее функции добавления нового элемента в массив и удаления элемента из массива. (Имитируется “резиновый” массив) #8
Kuzia domovenok, я придерживаюсь того же мнения, более того, считаю, что через list было бы делать неверно т.к. operator[] будет обладать сложностью O(n) вместо O(1), но каков вопрос - таков ответ.
Kiberg_boy
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 7
05.03.2013, 02:30  [ТС]     Реализовать приложение, содержащее функции добавления нового элемента в массив и удаления элемента из массива. (Имитируется “резиновый” массив) #9
Цитата Сообщение от MrGluck Посмотреть сообщение
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
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <list>
#include <cstddef>
#include <vector>
 
template<typename T>
class MyVector
{
    public:
        MyVector() : l_(), size_(0) {}
        T* begin() noexcept { return l_.begin(); }
        const T* begin() const noexcept { return l_.begin(); }
        void clear() noexcept { l_.clear(); }
        bool empty() const noexcept { return size_ == 0; }
        T* end() noexcept { return l_.end(); }
        const T* end() const noexcept { return l_.end(); }
        void push_back(const T& data) { l_.push_back(data); size_++; }
        void pop_back() { if (size_) { l_.pop_back(); size_--; } }
        std::size_t size() const noexcept { return size_; }
 
    protected:
        std::list<T> l_;
        std::size_t size_;
};
 
int main()
{
    MyVector<int> v;
    v.pop_back();
    v.push_back(2);
    std::cout << v.size();
    v.pop_back();
    std::cout << v.size();
    v.pop_back();
    std::cout << v.size();
}
а канебудь попроще
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2013, 02:42     Реализовать приложение, содержащее функции добавления нового элемента в массив и удаления элемента из массива. (Имитируется “резиновый” массив)
Еще ссылки по теме:
Вставка нового элемента в упорядоченный массив (без нарушения упорядоченности) C++
Вставка нового элемента в двумерный динамический массив дополнить код C++
Циклическая очередь, сбой после удаления/добавления элемента C++
C++ Массив и указатели. Вывести на экран весь массив и на отдельной строке - значение минимального элемента массива
C++ Заданы два одномерных массива действительных чисел различных размеров. Объединить их в один массив, включив второй массив между k-м и (k+1)-м элемента

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

Или воспользуйтесь поиском по форуму:
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
05.03.2013, 02:42     Реализовать приложение, содержащее функции добавления нового элемента в массив и удаления элемента из массива. (Имитируется “резиновый” массив) #10
Цитата Сообщение от MrGluck Посмотреть сообщение
Ограничения есть?
Если все на std::list реализовать? Для добавления/удаления более чем хватит. А вот [] будет уже иметь линейное время работы.
Цитата Сообщение от Kiberg_boy Посмотреть сообщение
-нету
Цитата Сообщение от Kiberg_boy Посмотреть сообщение
-а канебудь попроще
твои слова про то, что нет ограничений?
Yandex
Объявления
05.03.2013, 02:42     Реализовать приложение, содержащее функции добавления нового элемента в массив и удаления элемента из массива. (Имитируется “резиновый” массив)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru