У меня создалось впечатление, что вектор может быть создан с использованием целочисленного значения переменной. У меня такое впечатление от второго ответа здесь: How to create an array when the size is a variable not a constant?Невозможно инициализировать вектор с переменной int
Однако я все еще получаю «постоянную ИНТ» сообщение об ошибке для кода ниже:
#include <vector>
size_t ports_specified = std::count(Ports.begin(), Ports.end(), '+');
const int num_ports = static_cast<int>(ports_specified++);
std::vector<string> port_info[num_ports];
Вы создаете массив векторов. – tkausl
Вы создаете массив 'std :: vector'. Возможно, вам понадобится 'std :: vector port_info (num_ports); // инициализировать вектор с элементами num_ports'. –
songyuanyao
«Инициализировать»? C++ поддерживает несколько форм/синтаксисов initiazliation, но ни один из них не включает '[]' в качестве синтаксического элемента. То есть ваш '[num_ports]' не может быть инициализатором. Это означает, что он интерпретируется компилятором как нечто совершенно другое. – AnT