1 / 1 / 0
Регистрация: 29.12.2010
Сообщений: 17
1

Можно ли на базе массива реализовать контейнер

09.09.2011, 00:00. Показов 1236. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Можно ли на базе массива реализовать контейнер? Если да, то как это будет происходить?
0
09.09.2011, 00:00
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.09.2011, 00:00
Ответы с готовыми решениями:

На базе чего строить серверную базу и какими средствами её можно реализовать
Здравствуйте парни. Читал много, изучал много, но до сих пор осталось множество вопросов, ищу подсказки куда копать, если не сложно, дайте...

Реализовать диномический список на базе одномерного массива
Помогите пожалуста, нужно реализовать диномический список на базе одномерного массива. Если можно попроще.

Реализовать дек ограниченного размера на базе массива
Деком называют структуру, которая сочетает очередь и стек : добавлять и убирать элементы можно с обоих концов. Надо реализовать дек...

4
22 / 22 / 2
Регистрация: 08.09.2011
Сообщений: 22
09.09.2011, 00:06 2
Можно, используя класс и шаблоны. А зачем Вам? Вроде как проще воспользоваться готовыми...
1
1 / 1 / 0
Регистрация: 29.12.2010
Сообщений: 17
09.09.2011, 00:17  [ТС] 3
Задание в университете. Необходимо разобраться в работе контейнера и хотя бы частично в си билдере реализовать его функции. Ну там добавление, удаление элементов. Вообще не догоняю.
0
22 / 22 / 2
Регистрация: 08.09.2011
Сообщений: 22
09.09.2011, 01:27 4
Как вариант гляньте вот этот пример. Он в какой-то книги описан очень подробно, только вот не помню в какой, извините... Описал, как мог..

Наш заголовочный файл :

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
template <class T>
class Stack
{
    public:
        Stack(int = 5 ) ;               //Если размер стека не указан, полагаем его равным 5
 
        ~Stack() { delete []pStack ; }
 
        int push(const T&);                            //Метод для добавления элементов в стек
        int pop(T&);                                   //Метод для получения элементов из стека
        int isEmpty() const { return top == -1 ;}       // true - стек пустой, false - стек не пустой
        int isFull() const  { return top == size -1; }  // true - стек полон, false  - есть место в стеке
 
 
    private:
        int size ;      //Размер стека
        int top;        // Вершина стека
         T* pStack;     //Указатель на стек
};
Наш файл реализации :
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 "Stack.h"
 
 
template <class T>
Stack<T>::Stack(int s)
{
    size = s > 0 && s < 1000 ? s: 5 ; //Если пользователь неочень, то размер стека равен по умолчанию
 
    top = -1 ;                 //Говорим , что стек пуст
    pStack = new T[size] ;     //Выдиляем память под обьекты стека
}
 
template <class T>
int Stack<T>::push(const T& item)
{
    if (!isFull() )             //Если есть место в стеке
    {
        pStack[++top] =item ;  // Помещаем элемент в стек
        return 1 ;             //Говорим, что операция завершилась успешно
    }
 
    return 0 ;                //Операция завершилась неудачно
}
 
 
template <class T>
int Stack<T>::pop(T &Value)
{
    if(!isEmpty() )         //Если стек не пуст
    {
        Value =pStack[top--] ;  //Забираем элемент из стека
        return 1 ;              //Говорим, что операция прошла успешно
    }
 
  return 0  ;                  // Неудачно
}

Тестовая среда :

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "iostream"
 
#include "Stack.h"
 
using namespace std ;
 
int main()
{
 
Stack <int> intStack ;
 
    cout<<"Stack isEmpty : " << intStack.isEmpty() ;
    cout<<"Stack isFull : " <<intStack.isFull();
 
    intStack.push(12);
    intStack.push(15);
    intStack.push(12);
 
 
    return 0;
}
Реализация стека - один из самых простых, но по его аналогии Вы можете создать и более сложный контейнер.
0
101 / 101 / 27
Регистрация: 10.09.2010
Сообщений: 267
09.09.2011, 01:27 5
В книге Л.Аммерааль - STL для программистов на C++ есть пример реализации контейнера блок.
0
09.09.2011, 01:27
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.09.2011, 01:27
Помогаю со студенческими работами здесь

На базе обычного массива реализовать свой собственный класс
На базе обычного массива (коллекции .NET не использовать) реализовать свой собственный класс DynamicArray, представляющий собой...

На базе обычного массива реализовать свой собственный класс
На базе обычного массива (коллекции .NET не использовать) реализовать свой собственный класс в DynamicArray, представляющий собой массив с...

Реализовать линейный однонаправленный список на базе массива целых чисел
1.Дан одномерный массив случайным образом заданных целых чисел. Из элементов массива построить линейный однонаправленный список. ...

Реализовать контейнер multiset к классу
Здравствуйте у меня есть класс и мне надо реализовать контейнер multiset к этому классу. Проблема в том что я не могу понять особенности...

Реализовать контейнер данных наподобие файловой системы
Требуется реализовать контейнер данных наподобие файловой системы с возможностью создавать и уничтожать файлы и читать/записывать в них...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Отключение отслеживания файла, занесенного в .gitignore в Git
hw_wired 10.02.2025
Git помогает следить за изменениями в проекте, но иногда требуется исключить определенные файлы из системы контроля версий. Это могут быть конфигурационные файлы с локальными настройками, временные. . .
Что такое use strict в JavaScript
hw_wired 10.02.2025
Директива use strict - способ перевода JavaScript-кода в строгий режим работы, который делает язык более безопасным и предсказуемым. Она появилась в ECMAScript 5 как ответ на многочисленные проблемы,. . .
Как в jQuery проверить, что элемент скрыт
hw_wired 10.02.2025
jQuery предоставляет несколько эффективных способов определить, скрыт элемент или отображается на странице. Самый простой метод использует специальные селекторы :hidden и :visible. Селектор :hidden. . .
Как проверить (check out) ветку Git в удаленном репозитории
hw_wired 10.02.2025
Проверка удаленной ветки в Git требует понимания нескольких базовых концепций и точного выполнения определенной последовательности действий. Для начала необходимо получить актуальную информацию о. . .
chucknorris в HTML и другие обозначения цветов
hw_wired 10.02.2025
HTML, как основной язык разметки веб-страниц, прошел длинный путь развития в плане работы с цветами. На заре развития веб-технологий разработчики могли использовать только базовый набор из 16. . .
Стек и куча: отличия и назначение
hw_wired 10.02.2025
Управление памятью - ключевой элемент работы любой программы. В современных языках программирования память делится на две основные области: стек и кучу. Каждая из них обладает уникальными. . .
Комментарии в JSON
hw_wired 10.02.2025
JSON - текстовый формат обмена данными, построенный на основе синтаксиса JavaScript. Этот формат отличается простотой, читаемостью и широкой поддержкой во всех современных языках программирования. . . .
Перезаписываем локальные файлы с помощью git pull
hw_wired 10.02.2025
Git pull - незаменимая команда для синхронизации локального репозитория с удаленным. При работе над проектом в команде разработчиков часто возникает необходимость получить актуальные изменения,. . .
Оператор --> в C++
hw_wired 10.02.2025
Оператор --> (называемый "spaceship operator" или оператор космического корабля) - важное нововведение в стандарте C++20, упрощающее реализацию операций сравнения в пользовательских типах данных. . . .
Отмена git add до коммита
hw_wired 10.02.2025
Git предлагает несколько методов для отмены индексации файлов перед созданием коммита. Разработчики часто сталкиваются с ситуацией, когда нужно убрать файлы из индекса, не теряя внесенные изменения в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru