4 / 2 / 2
Регистрация: 26.03.2018
Сообщений: 78
1

Задать размер массива другой переменной

27.10.2018, 21:03. Показов 2052. Ответов 7
Метки нет (Все метки)

Есть такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <vector>
using namespace std;
 
int main()
{
    vector<float> vec;
 
    // Заполняю вектор
    for(int i = 0; i < 20; i++)
    {
        vec.push_back(1);
    }
        
    // Получаю размер вектора
    const int a = vec.size();
 
    // Создаю массив с размеров вектора
    int b[a];
    return 0;
}
Мне нужно, чтобы размер массива b был равен vec.size()
Как это сделать?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.10.2018, 21:03
Ответы с готовыми решениями:

Можно ли задать размер строкового массива переменной
Можно ли задать размер строкового массива переменной? Например считаю сколько слов в введенном...

Задать размер массива
Доброго времени суток. Делаю программу, которая шифрует перестановкой с ключем. Суть алгоритма:...

Задать размер двумерного массива
по форуму искал, но находил только для одномерных либо, немного не понятные. Можете написать и...

Задать размер массива в стороннем файле
В файле записано число, допустим 5, нужно считать его и создать массив такого размера ifstream...

7
260 / 110 / 53
Регистрация: 22.01.2017
Сообщений: 443
27.10.2018, 21:24 2
C++
1
const int a = vec.size();
Значение константы должно быть заранее определено.
Так что или убираете const или же:
C++
1
int b[vec.size()];
0
Mental handicap
1245 / 623 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
27.10.2018, 21:30 3
Цитата Сообщение от gordeyb Посмотреть сообщение
Как это сделать?
использовать std::array вместо вектора

Добавлено через 6 минут
Цитата Сообщение от n1b1ru Посмотреть сообщение
C++
1
int b[vec.size()];
А msvc такое не пропустит, тк это не constexpr
1
n1b1ru
27.10.2018, 21:40
  #4

Не по теме:

Azazel-San, не спорю, но о msvc ведь ни слова

0
7416 / 5011 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
27.10.2018, 22:10 5
Цитата Сообщение от gordeyb Посмотреть сообщение
Мне нужно, чтобы размер массива b был равен vec.size()
Как это сделать?
для такого массива, как Вы указали не получится - размер статического массива задаётся на стадии компиляции (некоторые компиляторы могут принять, но это будет не по стандарту С++)

а для динамического - нет проблем:
int n=vec.size();
int*b = new int[n];

Добавлено через 10 минут
p.s. если Вы собираетесь в дальнейшем копировать содержимое вектора в массив, чтобы данные не изменялись, применяйте одинаковые типы. желательно не используйте float. например если вектор типа double, то и массив объявляйте double
1
260 / 110 / 53
Регистрация: 22.01.2017
Сообщений: 443
27.10.2018, 22:57 6
Увидел инициализацию константы и тупанул...
Динамически, только динамически
0
16085 / 8686 / 2121
Регистрация: 30.01.2014
Сообщений: 14,972
27.10.2018, 23:12 7
Цитата Сообщение от gordeyb Посмотреть сообщение
Мне нужно, чтобы размер массива b был равен vec.size()
Как это сделать?
Лучше скажите зачем вам этот массив нужен потом?
1
4 / 2 / 2
Регистрация: 26.03.2018
Сообщений: 78
28.10.2018, 15:35  [ТС] 8
Уже не надо, использую векторы.
Спасибо всем, кто отвечал.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.10.2018, 15:35
Помогаю со студенческими работами здесь

Как задать произвольный размер массива
В общем проблема такая, есть задание (написанное каким то недалеким человеком). В нем не указано...

Как задать переменный размер массива
Как задать переменный размер массива?

Не получается задать произвольный размер массива в struct
Добрый вечер. Возникла проблема с лабараторной в универе. Не могу задать произвольный размер...

Как задать рандомно размер массива (в диапазоне от 50 до 200)?
Как задать рандомно размер массива, так чтобы размер был в диапазоне от 50 до 200? Вот то что я...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru