我有以下代码处理向量中的向量。在使用 eclipse 时,我遇到了一个非常奇怪的编译时错误。
我正在尝试将 column_info 向量中现有条目的内容复制到新 table_info 向量中的新 column_info 向量。
typedef struct _column_info
{
char name[20]; // Column Name
int type; // 0:INT, 1: CHAR
int size;
int offset; // Start Position
} column_info;
typedef struct _table_info
{
char name[20]; // Table Name
char columns[100];
vector<column_info> col;
char primary_key[20];
int recordsize;
int totalsize;
int records;
} table_info;
vector<table_info> v;
table_info* get_table_info(const string& tablename)
{
for (int i = 0; i < (int) v.size(); i++)
{
if (strcmp(v.at(i).name, tablename.c_str()) == 0)
return &v.at(i);
}
return NULL;
}
void select_table_nested(char* tablename, char* select_column[], int column_cnt[], int nested_cnt, int select_column_count)
{
table_info* table_info;
table_info = get_table_info(tablename);
table_info new_table;
column_info cols;
for( int k =0; k < table_info->col.size(); k++)
{
strcpy(cols.name, table_info->col.at(k).name);
cols.type = table_info->col.at(k).type;
cols.size = table_info->col.at(k).size;
cols.offset = table_info->col.at(k).offset;
new_table.col.push_back(cols); ---> field 'col' could not be resolved
---> Method 'push_back' could not be resolved
}
}
我错过了什么吗?因为我在同一代码的其他部分(在不同的函数中)执行 push_back 操作并且没有得到这个错误,除了这个特定的函数。请帮忙。