struct table_factor
{
string name;//名字
int type;//类型
int declare_line;//声明所在行数
int addr;//地址
int upbound;//数组上界
int parameter_count;//参数个数,针对函数来说的
int return_type;//返回值类型,针对函数来说的
};
vector<table_factor> symbol_table;
void destory_symbol_table()
{
for(vector<table_factor>::iterator Iter=symbol_table.end()-1;;Iter--)
{
if(symbol_table[Iter].type==2)
{
Iter=symbol_table.erase(Iter);
}
else
{
return;
}
}
}
这个程序里面if语句的symbol_table[Iter]总是会报错,说是Iter不是int类型的是table_factor类型的,额我知道大概是因为定义的时候用的是这个类型,但是我想实现的是删除vector中的元素,网上的方法就是erase(),定义一个vector<table_factor>::iterator类型的量
但是这里就没办法用Iter访问特定的元素了,应该怎么处理啊。。想访问Iter指定的动态数组中的元素
尚方宝剑之说
相关分类