2013-03-11 2 views
1

Я новичок в C++, и у меня есть небольшая проблема с этим трехмерным вектором, с которым я пытаюсь работать. Ядром проблемы является следующий код. Я создаю вектор 3D 100 * 100 * 10, но внутри моей основной функции программа, похоже, не знает, что она существует, так как я получаю сообщение об ошибке, когда пытаюсь запустить его. «Ошибка: Символ particleGrid не определен в текущей области». У 2D-векторов эта проблема отсутствует. Я использую код с ROOT, если это имеет значение.Проблемы с 3D-вектором в C++

using namespace std; 
Int_t gridResolution=100; 
vector<vector<vector<int>>> particleGrid(gridResolution,vector<vector<int>>(gridResolution,vector<int>(10))); 

void main(){ 
    particleGrid.clear(); 
} 

Любая помощь или намеки приветствуются.

+0

Я попытался 1D вектор, с #include , компиляция была в порядке. – taocp

+0

Какой компилятор вы используете? Как показано [здесь] (http://liveworkspace.org/code/pyKtj$3), приведенный выше код можно легко сделать для компиляции. Ваш компилятор явно не соответствует стандартам, потому что 'main' не может вернуть' void' в C++. – Yakk

+0

Кажется, он использует ROOT –

ответ

3

Похоже, что это синтаксическая ошибка.

vector<vector<vector<int>>> particleGrid(gridResolution,vector<vector<int>>(gridResolution,vector<int>(10))); 

Ваш компилятор лакомство >>> в vector<vector<vector<int>>> и >> в vector<vector<int>> как >> оператора. Решение: разделить все > в этой линии

vector<vector<vector<int> > > particleGrid(gridResolution,vector<vector<int> >(gridResolution,vector<int>(10))); 
+0

Я все еще получаю «Символ particleGrid не определен в текущей области действия» Ошибка :(Спасибо за предложение, однако, Careal! – user2158021

+0

@ user2158021 О. Я сожалею об этом. :(Тогда это вызвано другой проблемой. Я * догадываюсь, что 'particleGrid' определен внутри функции. (Ссылка: стр. 18 в http://indico.vecc.gov.in/indico/conferenceDisplay.py/getPic?picId=13&confId=7) Запустили ли вы функции, которые определяют 'particleGrid' перед вызовом' particleGrid.clear(); '? –

+0

Ну, particleGrid определяется вне моей основной функции, а также все мои другие глобальные переменные, поэтому не следует это заботиться? – user2158021