Я использую std::vector::push_back
в for-loop
, и в тот момент, когда я добавляю условие if, оно начинает давать ошибку.vector push_back throwing sigabrt error
if(p>0) a[p]->vec.push_back(i)
a
- это структура, содержащая вектор между прочим.
Ошибка, похоже, не зависит от условия.
struct link
{
vector<int>children;
int noOfchildren;
struct link * parent;
}
typedef struck link * node;
for(i=1;i<=n;i++)
{
a[i]=(node)malloc(sizeof(element));
scanf("%d",&p);
a[i]->parent=a[p];
a[i]->noOfchildren=0;
if(p>0)
a[p]->children.push_back(i);
}
a [0] инициализирован ранее.
Пожалуйста, напишите больше кода. Как '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' –
Можете ли вы включить какой-нибудь фактический код? Мы мало что можем сделать с описанием вашего кода. –
Пожалуйста, включите в свой вопрос [Short, Self Contained, Compilable Example] (http://www.sscce.org/) вашего кода. Мы не против читателей; как сейчас, мы так же невежественны, как и вы. –