Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> заполнение массива при динамическом создании, как вписать заранее заготовленные данные 
:(
    Опции темы
Filin88
Дата 10.2.2014, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 10.4.2008

Репутация: нет
Всего: нет



Здравствуйте!

Возникла необходимость заполнения одномерного динамического массива заранее заготовленными данными, при его объявлении. Со статическим все проще:
Код

int mass[] = {1, 3, 7, 666, 8 };
 

Но нигде не видел, чтобы так заполняли динамический массив с оператором new. Может кто-нибудь знает как тут выкрутиться? 
PM MAIL   Вверх
borisbn
Дата 10.2.2014, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Код
std::vector< int > mass;
...
// 1) с использованием C++11
mass = {1, 3, 7, 666, 8 };
// 2) без C++11
mass.push_back( 1 );
mass.push_back( 3 );
mass.push_back( 7 );
mass.push_back( 666 );
mass.push_back( 8 );



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Filin88
Дата 11.2.2014, 02:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 10.4.2008

Репутация: нет
Всего: нет



Да это, как бы, понятно... Только у меня нужно посложнее данные запихнуть и в отформатированом виде:
Код


struct_type struct_mass[] =
{
   /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////    
   //            Параметр     // Номер параметра //  Множитель //  Интеграл    //  Ввод  // Верхняя  // Нижняя   //    Значение  //
   //                БД            //                               //                      //                     //            //   грань    //  грань     //                      //
   ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////  
   {            Param1     ,        "DFG2032"       ,          0.01       ,    PI_NOINT    ,    TB1     ,     301,           -300      ,          0        },  // 0
   {            Param2     ,        "DFG2042"       ,          0.01       ,    PI_NOINT    ,    TB1     ,     301,           -300      ,          0        },  // 1
   {            Param3     ,        "DFG2052"       ,          0.01       ,    PI_NOINT    ,    TB1     ,     301,           -300      ,          0        },  // 2
   {            Param4     ,        "DFG2062"       ,          0.11       ,    PI_NOINT    ,    TB1     ,     301,           -300      ,          0        },  // 3
   {            Param5     ,        "DFG2072"       ,          0.01       ,    PI_NOINT    ,    TB2     ,     101,           -300      ,          0        },  // 4
   {            Param6     ,        "DFG2082"       ,          0.2         ,    PI_NOINT    ,    TB1     ,     301,           -300      ,          0        }   // 5
};



Вот как то так нужно объявить динамически, но строк по факту больше

Это сообщение отредактировал(а) Filin88 - 11.2.2014, 02:35
PM MAIL   Вверх
borisbn
Дата 11.2.2014, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Код
struct struct_type {
    int x;
    std::string s;
    struct_type( int a_x, const std::string & a_s ) : x( a_x ), s( a_s )
    {
    }
};

std::vector< struct_type > mass;
mass = { { 1, "hello" }, { 42, "world" } };
mass.push_back( { 3, "bla" } );
mass.emplace( mass.end(), 3, "bla" );

http://ideone.com/xh8lXr

Это сообщение отредактировал(а) borisbn - 11.2.2014, 10:02


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
vinter
Дата 11.2.2014, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



borisbn, совместил бы 9-10 строки, зачем два вектора создавать?


--------------------
Мой блог
PM MAIL WWW   Вверх
borisbn
Дата 11.2.2014, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



vinter, я забыл меду ними троеточие поставить, чтобы показать, что создание - в одном месте (например, в h-нике как член класса), а заполнение - в другом (например в методе readFromDataBase().

А так... конечно можно  smile 


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0502 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.