Во-первых, я новичок в C++ и очень привык работать в MatLAB. Мой код, вероятно, захочет заставить опытных пользователей C++ стрелять мне в лицо, но это выглядит так:Доступ к вектору за пределами цикла if в C++
EDIT: Я сильно отредактировал фрагмент кода. Ниже приведен очищенный, обобщенный пример того, что я пытаюсь выполнить.
int main()
{
int t = 0;
vector<int> Pad_Ref_Vec; //initialize vector. Required size unknown
for (int n = 0; n <= 10; n++)
{
if (t == 0)
{
vector<int> Pad_Ref_Vec(100); //at this point in the code, i know the size i need this vector to be
for (int i = 0; i < 100; i++)
{
Pad_Ref_Vec[i] = i;
}
}
else
{
//do some operation using the values of Pad_Ref_Vec created in the above
//if statement
}
t++;
}
return 0;
}
Если я сделаю это, вектор Pad_Ref_Vec не читает [0 1 2 3 4 5 ... ...] после того, если заявление, но возвращается к своей прежней форме (после первой инициализации до петля for
), которая является только вектором размера 0
Мне трудно поверить, что что-то настолько простое, оказывается, такая хлопот. Заранее благодарим за любые конструктивные советы.
Подсказка: векторы могут быть скопированы и повторно инициализированы из копии. –
Короче говоря, я хочу использовать элементы вектора, который я создаю в цикле if (если t == 0)) в каждом последующем цикле (если t> 0)). Я пытаюсь автокорректировать профиль интенсивности (линии по изображению) каждого t> 0 кадра с первым t == 0 кадром, чтобы отслеживать движение объекта. У меня очень хорошо разработан скрипт Matlab для этого, который мы используем в моей лаборатории, но я переписываю его для приложения реального времени с использованием openCV. –
Ты болтливый человек. Сосредоточьтесь на важных и важных вещах. –