Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

27.12.2012, 11:21. Просмотров 324. Ответов 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).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2012, 11:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массив как в js (C++):

Массив: Как скопировать двумерный массив в другой массив? - C++
Как скопировать двумерный массив в другой массив?

Как в массив скопировать массив, который заполнен через указатели - C++
Есть два файла допусти. Суть вопроса в том, что находится во втором файле. Как записать? car.h struct car { float massiv; ...

Массив: Как можно задать и вывести симметричный двумерный массив? - C++
как можно задать и вывести симметричный массив

Как преобразовать массив в динамический? Массив вычисляет сумму элементов каждой диагонали матрицы - C++
Ошибка : Вызвано исключение по адресу 0x00BB2F4F в Проект6.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xFDFDFE05. #...

Как массив разнозначных чисел превратить в массив цифр? (С++) - C++
(Я делаю на Builder 6, С++ на консоли) У меня в курсаче есть такое задание: Для введённого целого числа N определить N-ую ЦИФРУ...

Массив строк как массив указателей на массивы чаров - C++
Я всё правильно сделал? char* Files; Files = &quot;AHEAD&quot;; Files = &quot;LEFT&quot;; Files = &quot;RIGHT&quot;; Files = NULL; int searchFile()...

7
asidorchenko
379 / 205 / 25
Регистрация: 09.04.2012
Сообщений: 635
27.12.2012, 11:35 #2
Пример реализации есть в проекте dmd.2.060.zip со страницы http://dlang.org/download.html
Конкретно в файле root/aav.c

Если правильно понимаю, вы хотите реализовать ассоциативный массив ( по другому хэш)?
1
ArtMaster
26 / 24 / 3
Регистрация: 27.10.2012
Сообщений: 74
27.12.2012, 11:39  [ТС] #3
ну да ассоциативный массив, только все что я нашел в интернете связано с map, а там нельзя хранить тот пример который я написал.
0
Пaтрик
416 / 391 / 39
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
27.12.2012, 12:20 #4
Вообще это не массив, а объект. Делаете класс/структуру. Первое поле типа string (название свойства), второе что-то шаблонное. Дальше создаете класс, с этими свойствами.
0
ArtMaster
26 / 24 / 3
Регистрация: 27.10.2012
Сообщений: 74
27.12.2012, 15:26  [ТС] #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];
после этого добавить переменную
0
rus_phantom
6 / 6 / 1
Регистрация: 31.03.2011
Сообщений: 69
27.12.2012, 16:01 #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*
1
ArtMaster
26 / 24 / 3
Регистрация: 27.10.2012
Сообщений: 74
27.12.2012, 16:09  [ТС] #7
да мне нужно в перемешку, сейчас попробую)
0
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
27.12.2012, 17:24 #8
есть boost::any, boost::variant ну и всякие аналоги в других библиотеках. вот для ознакомления:
http://hghltd.yandex.net/yandbtm?tex...558c60&keyno=0
хм. форум битую ссылку вставляет почему-то. в любом случае ключевые слова для поиска:
boost::variant
boost::any
1
27.12.2012, 17:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2012, 17:24
Привет! Вот еще темы с ответами:

Как сложить массив чтоб получился одномерный массив? - C++
Например есть 3х мерный массив, как сложить его строки чтоб получился одномерный массив B (1 строка будет 1 элементом массива В). void...

Как разбить массив по 3 елемента и засунуть в другой массив - C++
Здарова форумчане. Помогите, кому не лень решить задачу по программированию на c++ Кароче нам дан массив чисел от 1 до 18. Сначала нам...

Как передать массив структур в функцию в качестве параметра, чтобы изменения в функции меняли исходный массив? - C++
Допустим есть структура struct Base { int a; int b; int c; }; В основном методе main() объявим массив...

Как перевести массив строк в массив int - C++
for (int i=0; i&lt;str.size(); i++) { str=static_cast&lt;int&gt;(str); } есть vector &lt;string&gt; str; Оно не...


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

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

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