Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.03.2015, 21:34   #1
i-programmer
 
Регистрация: 08.03.2015
Сообщений: 4
По умолчанию Как этот код написать на Visual c++ ?

Здравствуйте!
Я одну вещицу делаю. Понадобилась работа с массивами. Ассоциативными. И не очень )))
Дело вот в чем. На php это далось мне довольно легко. А на Visual c++ со своей строгостью у меня получился не очень хороший (хоть и работающий), но всё же монстрррррррр.))

В общем, структура должна быть такой (описано на php)

PHP код:
Array
(
    [
0] => Array
        (
            [
name] => email.properties
            
[data] => Array
                (
                    [
0] => Array
                        (
                            [
name] => ServerInfoName
                            
[tooltip] => # Server Name - Default: Unconfigured 
                            
[value] => dnbsfmsdbfmdfn
                            
[type] => text
                        
)
                    [
1] => Array
                        (
                            [
name] => EmailSystemEnabled
                            
[tooltip] => # Enable Email System  Default: False
                            
[value] => False
                            
[type] => bool
                        
)
                    ...
                    [
N]
                )

        )

    [
1] => Array
        (
            [
name] => loginserver.properties
            
[data] => Array
                (
                    [
0] => Array
                        (
                            [
name] => LoginserverPort
                            
[tooltip] => # Default: 2106
                            
[value] => 2106
                            
[type] => text
                        
)
                    [
1] => Array
                        (
                            [
name] => LoginHostname
                            
[tooltip] => # The address on which login will listen for GameServers, use * to bind on all available IPs # Default: * (0.0.0.0)
                            
[value] => *
                            [
type] => text
                        
)
                    ...
                    [
N]
                )
        )
    ...
    [
N]

То есть, по хорошему, если я обращаюсь так:
$properties[0]['name'], чтобы доставало имя свойства, если так
$properties[$j]['data'][0]['value'], то доставало значение свойства в 0 ячейки массива data )))

----
в visual c++ получился следующий франкенштейн:
Код:
typedef map<string, string> keyValMap;
typedef map<int, keyValMap> dataMap;
typedef map<string, dataMap> dataMapALL;
typedef map<int, dataMapALL> dataMapGRAND;

...
...
keyValMap propertiesList;
dataMap propertiesData;
dataMapALL propertiesDataALL;
dataMapGRAND propertiesGRAND;
keyValMap keyValData;
dataMap data;

...
...
propertiesList["name"] = "email.properties";
propertiesData[0] = propertiesList;


keyValData["name"] = "name";
keyValData["tooltip"] = "tooltip";
keyValData["value"] = "value";
keyValData["type"] = "type";
data[0] = keyValData;

propertiesDataALL[propertiesData[0]["name"]] = data;
propertiesGRAND[0] = propertiesDataALL;
i-programmer вне форума Ответить с цитированием
Старый 08.03.2015, 22:15   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Как этот код написать на Visual c++ ?
Дело в том, что Вы его уже написали. Просто каждый язык имеет свою специфику.
Streletz вне форума Ответить с цитированием
Старый 08.03.2015, 22:29   #3
i-programmer
 
Регистрация: 08.03.2015
Сообщений: 4
По умолчанию !!!

Цитата:
Сообщение от Streletz Посмотреть сообщение
Дело в том, что Вы его уже написали. Просто каждый язык имеет свою специфику.
Да, понимаю.
Но дело в том, что это кошмарный кошмар то, что я написал.
Просто я, как минимум, надеялся на то, чтобы, наверное, скорее, посоветовали как это правильнее написать. Как это должно быть на самом деле. В смысле - по профессиональному.
Может быть есть более простой способ, а не как я - наплодил map'ов кучу.

Хотелось бы сделать более изящно, элегантно, менее грязно.
Если это нормально и не страшно - то я конечно очень сильно удивлюсь и смирюсь.)) Но что-то мне подсказывает, что есть лучший способ сделать это.
i-programmer вне форума Ответить с цитированием
Старый 08.03.2015, 22:40   #4
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от i-programmer Посмотреть сообщение
Если это нормально и не страшно - то я конечно очень сильно удивлюсь и смирюсь.))
Вам виднее.
Цитата:
Сообщение от i-programmer Посмотреть сообщение
Но что-то мне подсказывает, что есть лучший способ сделать это.
Возможно, правильно подсказывает.
Подобную структуру данных в C++ ИМХО гораздо удобнее реализовать с использованием структур или классов.
Streletz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как понять этот код *PB* Общие вопросы Delphi 6 15.12.2015 12:54
Picture.Data = {как получить этот код?} Crystallon Общие вопросы Delphi 4 02.05.2015 18:15
как мне ускорить этот код regit Visual C++ 7 16.09.2014 23:03
Что то не понимаю как этот код работает? Denis19061989 Помощь студентам 0 26.05.2013 10:33
Как изменить этот код? Dev-C++ Camelot_2012 Помощь студентам 2 07.12.2012 14:11