поэтому у меня есть такая структура:
struct lang_accuracy{
std::vector<int> sum;
vector<string> language;
};
и этот вектор типа структуры
vector<lang_accuracy> s;
...
for (int i = 0;...)
{
s.push_back(lang_accuracy());
for (int k = 0;...)
{
s[i].sum.push_back(); // `<- error`
s[i].sum[k]=`some integer value`;
}
s[i].language.push_back(); // `<- error`
s[i].language[i] = `some string`;
}
Итак, поскольку в моей структуре 2 вектора, я должен сначала выделить больше памяти с помощью push_back
в s
, а затем перейти к элементу i
вектора s
и инициализировать.
Но sum
и language
также являются векторами, и по какой-то причине я не могу скомпилировать вышесказанное, потому что я получаю следующее:
ошибка C2661: 'std::vector<int,std::allocator<_Ty>>::push_back
': перегруженная функция не принимает 0 аргументов
Я знаю, в случае vector<vector<type>>
вас push_back
элементов в первом векторе, а когда он заполнен, вы push_back
целого вектора переходите в другой.
Здесь я не могу этого сделать, потому что sum
и lang
не распознаются как автономные вне структуры.
Как мне заполнить мой sum
чем?