Из-за некоторого устаревшего кода мне нужно объявить массив векторов. Я пробовал:Хотите объявить массив векторов
vector< foo> a[numvecs];
затем распределение вектора:
a[i]=vector<foo>(foosize);
, но я не могу показаться, чтобы правильно обращаться или писать на внутренние векторы
afile.read((char *)&a[i][0],foosize*sizeof(foo))
вызывает Segfault
Я бы объявил вектор векторов, но вектор фокуса является фиксированным размером и очень мал (обычно от 1 до 3) и al поэтому из-за того, как написан код legecy. Плюс, когда я это делаю и пытаюсь напечатать что-либо в векторе, я получаю ошибки компилятора о несоответствиях типа, какие-то подсказки?
Что относительно'vector> a; a.resize (numvecs, vector (foosize)); '? –
'vector a [numvecs];' недопустимо C++, если 'numvecs' не является константой, известной во время компиляции; если код компилируется из-за расширения компилятора. В любом случае, предполагая, что 'foo' является тривиально копируемым типом, код, который вы показали, должен работать. –
Praetorian
Отправьте сообщение [MCVE] (http://stackoverflow.com/help/mcve). – Csq