Я пытаюсь создать вектор векторов, каждый с предопределенным размером. Моя инстинктивная первая попытка была сделать (в C++ Builder XE2 UnicodeString класс строка, используемая в ее компонентах и т.д. Предположим, что выражение является UnicodeString и Length() возвращает количество символов в нем):Вектор из названных векторов приводит к ошибкам компилятора
vector <UnicodeString> StringVector ('\0',2);
vector <StringVector> ExpressionArray(Expression.Length());
Но мой компилятор ненавидит это. Что с этим не так?
Другой вариант заключается в следующем:
vector <vector <UnicodeString> > ExpressionArray(Expression.Length());
Но вместо Expression.Length() - элемент вектора 2-элементных пустыми строки векторов Я получаю Expression.Length() - элемент вектора пустых векторов ,
Я предполагаю, что могу использовать оператор изменения размера, но я не уверен, как это сделать с двумерными векторами.
Как мне все-таки написать что-нибудь подобное?
Следующий код генерирует исключение, на первой линии после открывающей скобки:
for (int i=0;i<Expression.Length();i++)
{
ExpressionArray[0][i]=Expression.SubString(i+1,1); //i+1 because UnicodeStrings are 1-based
ExpressionArray[1][i]="B";
OnClickStatusInfo->Lines->Add(ExpressionArray[0][i])+"\t"+ExpressionArray[1][i];
}
Что случилось? Меня поражает, что я, возможно, неправильно использовал операторов индексов.
Спасибо большое,
sbarringtonleigh