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

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

Войти
Регистрация
Восстановить пароль
 
ArtMaster
26 / 24 / 3
Регистрация: 27.10.2012
Сообщений: 74
#1

Массив как в js - C++

27.12.2012, 11:21. Просмотров 300. Ответов 7
Метки нет (Все метки)

Помогите реализовать классы для массива js

Основная проблема это хранение данных вида a={pro:'123', prot: 1245, asd : '321'}

Как это можно сделать? Можно просто идеями поделится
C++
1
2
3
4
5
6
7
8
9
10
template<class Type>
class Variable{
    public:
    string name;
    string type;
    Type expr;
    Variable(Type a){
        expr=a;
    }
};
Вот так я создаю переменную type(string, integer, double).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2012, 11:21     Массив как в js
Посмотрите здесь:

C++ Как массив разнозначных чисел превратить в массив цифр? (С++)
Как разбить массив по 3 елемента и засунуть в другой массив C++
C++ Нужно создать статический массив строк как статический массив указателей на строки. Условние ниже -->
Как передать массив в массив с указателем C++
Массив строк как массив указателей на массивы чаров C++
C++ создать статический массив строк как статический массив указателей на строки, задание ниже -->
C++ Как перевести массив строк в массив int
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asidorchenko
379 / 205 / 25
Регистрация: 09.04.2012
Сообщений: 635
27.12.2012, 11:35     Массив как в js #2
Пример реализации есть в проекте dmd.2.060.zip со страницы http://dlang.org/download.html
Конкретно в файле root/aav.c

Если правильно понимаю, вы хотите реализовать ассоциативный массив ( по другому хэш)?
ArtMaster
26 / 24 / 3
Регистрация: 27.10.2012
Сообщений: 74
27.12.2012, 11:39  [ТС]     Массив как в js #3
ну да ассоциативный массив, только все что я нашел в интернете связано с map, а там нельзя хранить тот пример который я написал.
Пaтрик
 Аватар для Пaтрик
395 / 388 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
27.12.2012, 12:20     Массив как в js #4
Вообще это не массив, а объект. Делаете класс/структуру. Первое поле типа string (название свойства), второе что-то шаблонное. Дальше создаете класс, с этими свойствами.
ArtMaster
26 / 24 / 3
Регистрация: 27.10.2012
Сообщений: 74
27.12.2012, 15:26  [ТС]     Массив как в js #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
 
template<class Name, class Type>
class Variable{
    public:
    Name name;
    Type expr;
};
 
 
 
int main(){
    Variable<string, double> t[100];     
}
вот так можно создать, но это не сработает если какой-либо элемент массива будет string, как это можно исправить?

Добавлено через 1 час 17 минут
можно ли объявить в классе переменную public после его создания?

C++
1
Variable<string, double> t[100];
после этого добавить переменную
rus_phantom
6 / 6 / 1
Регистрация: 31.03.2011
Сообщений: 69
27.12.2012, 16:01     Массив как в js #6
Я смотрю ты хочешь хранить в массиве разные данные в перемешку? Тогда может подойти такой вариант:

C++
1
2
3
4
5
6
7
8
9
10
11
enum e_types {
   jsInt,
   jsString
};
 
struct js_object {
   e_types type;
   void* data;
};
 
map<string,js_object> js_map;
Таким образом ты создаешь объект, в который помещаешь ссылку на твои данные и его тип (чтобы потом можно было узнать что ты запихнул в мапу). После этого просто создаешь хеш-массив и работаешь с ним. Только будь осторожен с void*
ArtMaster
26 / 24 / 3
Регистрация: 27.10.2012
Сообщений: 74
27.12.2012, 16:09  [ТС]     Массив как в js #7
да мне нужно в перемешку, сейчас попробую)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2012, 17:24     Массив как в js
Еще ссылки по теме:

Как сложить массив чтоб получился одномерный массив? C++
Как в массив скопировать массив, который заполнен через указатели C++
C++ Массив и память. Как создать динамический массив?
Как передать массив структур в функцию в качестве параметра, чтобы изменения в функции меняли исходный массив? C++
Массив: Как можно задать и вывести симметричный двумерный массив? C++

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

Или воспользуйтесь поиском по форуму:
DU
1479 / 1055 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
27.12.2012, 17:24     Массив как в js #8
есть boost::any, boost::variant ну и всякие аналоги в других библиотеках. вот для ознакомления:
http://hghltd.yandex.net/yandbtm?tex...558c60&keyno=0
хм. форум битую ссылку вставляет почему-то. в любом случае ключевые слова для поиска:
boost::variant
boost::any
Yandex
Объявления
27.12.2012, 17:24     Массив как в js
Ответ Создать тему
Опции темы

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