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

Как инициализировать массив переменной - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
selevit
 Аватар для selevit
79 / 75 / 3
Регистрация: 08.10.2008
Сообщений: 296
02.06.2010, 02:07     Как инициализировать массив переменной #1
Всем доброго времени суток! у меня возникла проблема, мне нужно инициализировать статический массив с помощью переменной, т.е. пользователь вводит количество элементов массива и я задаю массиву это значение. Заранее спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 192
02.06.2010, 02:09     Как инициализировать массив переменной #2
C
1
2
3
4
int n,i;
cin>>n;
int mas[n];
for(i=0;i<n;i++) mas[i]=n;
вот так? Оо
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
02.06.2010, 02:19     Как инициализировать массив переменной #3
Цитата Сообщение от selevit Посмотреть сообщение
мне нужно инициализировать статический массив с помощью переменной, т.е. пользователь вводит количество элементов массива и я задаю массиву это значение.
Если массив статический, то пользователь количество его элементов не введёт (если маргинальные случаи из С99 не рассматривать), в лучшем случае укажет количество элементов уже существующего массива, которые надо заполнить. А так функцию fill из <algorithm> изучите, если Вам на С++...
selevit
 Аватар для selevit
79 / 75 / 3
Регистрация: 08.10.2008
Сообщений: 296
02.06.2010, 02:46  [ТС]     Как инициализировать массив переменной #4
Цитата Сообщение от easybudda Посмотреть сообщение
в лучшем случае укажет количество элементов уже существующего массива, которые надо заполнить..
т.е. инициализировать массив можно произвольным индексом, который должен быть больше, чем введет пользователь?

Цитата Сообщение от so1o Посмотреть сообщение
C
1
2
3
4
int n,i;
cin>>n;
int mas[n];
for(i=0;i<n;i++) mas[i]=n;
вот так? Оо
этот код на С++ работать не будет, т.к. индексом массива при инициализации должно быть только константное число.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
02.06.2010, 03:00     Как инициализировать массив переменной #5
Цитата Сообщение от selevit Посмотреть сообщение
т.е. инициализировать массив можно произвольным индексом, который должен быть больше, чем введет пользователь?
Ну при таком подходе да, вернее элементов должно быть не меньше, чем укажет пользователь. Но что мешает вот так сделать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <algorithm>
...
int * arr, cnt, val;
cout << "Count of elements: ";
cin >> cnt;
arr = new int [ cnt ];
cout << "Value for elements: ";
cin >> val;
fill_n(arr, cnt, val);
...
delete [] arr;
а ещё проще
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <vector>
...
int cnt, val;
cout << "Count of elements: ";
cin >> cnt;
cout << "Value for elements: ";
cin >> val;
vector<int> vec(cnt, val);
...
Yandex
Объявления
02.06.2010, 03:00     Как инициализировать массив переменной
Ответ Создать тему
Опции темы

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