Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
sergey.shuvalov
-5 / 2 / 0
Регистрация: 06.11.2011
Сообщений: 269
1

Существует ли "массив" переменных ?

16.07.2013, 14:05. Просмотров 513. Ответов 11
Метки нет (Все метки)

Существует ли "массив" или какая-либо структура для хранения переменных, чтобы была возможность в процессе выполнения программы удалять или добавлять некоторые переменные ?
Ну, например:
Есть комната А. И есть 10 предметов.
Предметы можно представить как int.
В комнату периодически добавляются или убираются из неё какие-то предметы.
С каким-то интервалом времени проверяется содержимое комнаты А , какие предметы в ней находятся.
В виде какой "структуры" можно было бы объявить(организовать) комнату А, чтобы была возможность производить вышеперечисленные действия ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2013, 14:05
Ответы с готовыми решениями:

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года "весна", "лето", "осень", "зима" определить...

Не существует подходящей функции преобразования из "std::string" в "int"
Я только начинаю изучать язык c++ по книге "Язык программирования С++. Базовый...

Сколько существует способов расставить между цифр знаки "+" и "-"
Вот сама задача - {удалено} Не могу сделать норм перебор

Функция isspace и тип string: Не существует подходящей функции преобразования из "std::string" в "int"
Добрый день! Я только начинаю изучать язык c++ по книге "Язык...

Для каждой строки найти слова, которые не имеют ни одного из букв: "l", "k", "r", "s" i "j"
Задано символьные строки. Строка состоит из нескольких слов (наборов символов),...

11
Croessmah
++Ͻ
14777 / 8453 / 1605
Регистрация: 27.09.2012
Сообщений: 20,803
Записей в блоге: 2
Завершенные тесты: 1
16.07.2013, 14:08 2
C++
1
std::vector < int > room;
1
SatanaXIII
Почетный модератор
Эксперт С++
5779 / 2777 / 380
Регистрация: 01.11.2011
Сообщений: 6,757
Завершенные тесты: 1
16.07.2013, 14:15 3
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
В виде какой "структуры"
Если буквально
C++
1
2
3
4
5
6
7
8
struct roomContents
{
int chair;
int lamp;
int pool;
int girl;
/*...*/
} bathRoom, diningRoom;
1
sergey.shuvalov
-5 / 2 / 0
Регистрация: 06.11.2011
Сообщений: 269
16.07.2013, 14:15  [ТС] 4
Croessmah,
А если переменные будут разных типов ?
0
Croessmah
++Ͻ
14777 / 8453 / 1605
Регистрация: 27.09.2012
Сообщений: 20,803
Записей в блоге: 2
Завершенные тесты: 1
16.07.2013, 14:27 5
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
А если переменные будут разных типов ?
можно попробовать boost::any заюзать

Добавлено через 4 минуты
а можно, например, сделать абстрактный класс "предмет" и все предметы наследовать от него.
Тогда можно будет в векторе хранить указатели на предметы. Что-то вроде этого:

C++
1
std::vector < предмет* > roomItems;
2
Ilot
Эксперт С++
1832 / 1190 / 342
Регистрация: 16.05.2013
Сообщений: 3,139
Записей в блоге: 5
Завершенные тесты: 1
16.07.2013, 14:32 6
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
Croessmah,
А если переменные будут разных типов ?
sergey.shuvalov, можно например создать список хранящий указатели на базовый класс cItem, который в свою очередь наследуют классы предметов.
1
sergey.shuvalov
-5 / 2 / 0
Регистрация: 06.11.2011
Сообщений: 269
16.07.2013, 14:35  [ТС] 7
Ilot,
Тоже думал в сторону указателей, как одному из возможных вариантов.
0
Tulosba
:)
Эксперт С++
4750 / 3244 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
16.07.2013, 16:28 8
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
Тоже думал в сторону указателей, как одному из возможных вариантов.
Подумайте еще и о ссылках
0
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
16.07.2013, 18:16 9
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
А если переменные будут разных типов ?
boost::any, boost::variant, boost::type_erasure::any, полиморфные типы, void*
1
Tulosba
:)
Эксперт С++
4750 / 3244 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
16.07.2013, 18:17 10
std::tuple можно еще добавить
1
Кудаив
411 / 410 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
Завершенные тесты: 2
16.07.2013, 18:26 11
QVariant ко всему прочему
1
taras atavin
4205 / 1768 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
17.07.2013, 12:56 12
Массивы - вполне валидная категория типов составных переменных, может иметь любой базовый тип, включая классы и другие массивы. А если тип массива объявить, как класс с перегруженным оператором-членом [], то такой объектный массив может быть и динамическим, и даже разреженным. Динамический позволит менять количество элементов, а разреженный удалять и добавлять элементы в любом месте массива, включая его середину.
1
17.07.2013, 12:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.07.2013, 12:56

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование)
Разработать программу с использованием наследования классов, реализующую...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления"
Помогите с кодом написания задачи, не понимаю как написать классы в классе. ...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания"
Создать класс Книга поля: название книги,количество страниц,год издания...


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

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

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