Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на C / C++


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

_Ayl_
Статус: Студент
Рейтинг: 905
∙ повысить рейтинг >>
Micren
Статус: Практикант
Рейтинг: 461
∙ повысить рейтинг >>
Серг aka umbSSE
Статус: 10-й класс
Рейтинг: 236
∙ повысить рейтинг >>

∙ / КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 1361 от 28.07.2009, 11:35
Администратор рассылки: Dr_Andrew, Модератор
В рассылке: подписчиков - 637, экспертов - 157
В номере: вопросов - 1, ответов - 2

Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке:
оценить выпуск >>

Вопрос № 170700: Приветствую уважаемых Знатоков! :) Вопрос краток: Программная среда - ms vs2005 c++ Требуется создать массив тип CString CString ar [] каждый эллемент массива ar сам является массивом CString: например: ar[' name ']=['Пе...



Вопрос № 170700:

Приветствую уважаемых Знатоков! :)
Вопрос краток: Программная среда - ms vs2005 c++
Требуется создать массив тип CString
CString ar []
каждый эллемент массива ar сам является массивом CString:
например:
ar[' name ']=['Петя','8-916-00000'....]
Создать подобное, например в js - нет вообще проблем. Но
как это можно безболезненно органнизовать в cpp?

(я знаю неск. путей - map, templates, CString ar[][]={} но с реаллизацией этой задачи что-то мешает справиться..) Надеюсь на Вашу помощь. {dreamer}

Отправлен: 22.07.2009, 18:28
Вопрос задал: Dreamerzx, Посетитель
Всего ответов: 2
Страница вопроса >>


Отвечает Micren, Практикант :
Здравствуйте, Dreamerzx.
Просто как пример.
Код:

#include <iostream>
#include <atlstr.h>
#include <vector>
#include <map>
#include <iterator>
#include <sstream>

using namespace std;

typedef vector<CString> str_vector;
typedef map<CString,str_vector> str_map;
typedef pair<CString,str_vector> pair_type;

const size_t map_items=10;
const size_t vector_items=5;

int main()
{
str_map my_map;
insert_iterator<str_map> ins_iter(my_map,my_map.begin());
for (size_t i=0;i<map_items;++i)
{
str_vector vec;
for (size_t j=0;j<vector_items;++j)
{
stringstream str_stream;
str_stream<<"field_& quot;<<i+1<<'_'<<j+1;
vec.push_back(str_stream.str().c_str());
}
stringstream str_stream;
str_stream<<"key_"<<i+1;
*ins_iter=pair_type(str_stream.str().c_str(),vec);
}

for(str_map::const_iterator it_m=my_map.begin();it_m!=my_map.end();++it_m)
{
wcout<<L"Key:"<<it_m->first.GetString()<<L"; ";
wcout<<L"Fields:";
for(str_vector::const_iterator it_v=it_m->second.begin();it_v!=it_m->second.end();++it_v)
{
wcout<<it_v->GetString()<<L',';
}
wcout<<"\b "<<endl;
}
system("PAUSE");
return 0;
}

Пример работы:
Код:

Key:key_1; Fields:field_1_1,field_1_2,field_1_3,field_1_4,field_1_5
Key:key_10; Fields:field_10_1,field_10_2,field_10_3,field_10_4,field_10_5
Key:key_2; Fields:field_2_1,field_2_2,field_2_3,field_2_4,field_2_5
Key:key_3; Fields:field_3_1,field_3_2,field_3_3,field_3_4,field_3_5
Key:key_4; Fields:field_4_1,field_4_2,field_4_3,field_4_4,field_4_5
Key:key_5; Fields:field_5_1,field_5_2,field_5_3,field_5_4,field_5_5
Key:key_6; Fields:field_6_1,field_6_2,field_6_3,field_6_4,field_6_5
Key:key_7; Fields:field_7_1,field_7_2,field_7_3,field_7_4,field_7_5
Key:key_8; Fields:field_8_1,field_8_2,field_8_3,field_8_4,field_8_5
Key:key_9; Fields:field_9_1,field_9_2,field_9_3,field_9_4,field_9_5

Ответ отправил: Micren, Практикант
Ответ отправлен: 22.07.2009, 19:39

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 252492 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Новиков Андрей Викторович, 1-й класс :
    Здравствуйте, Dreamerzx!
    На мой взгляд не плохо было бы создать структуру
    struct Fields
    {
    CString Name;
    ...
    ...
    }
    или же использовать классы
    Использование классов позволит сделать код более понятныи и его легче будет изменить если это понадобится.
    class MyClass
    {
    ...
    }

    Ответ отправил: Новиков Андрей Викторович, 1-й класс
    Ответ отправлен: 23.07.2009, 08:08

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 252509 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке:
    оценить выпуск >>

    подать вопрос экспертам этой рассылки >>

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.6 от 21.07.2009

    В избранное