ベクトル内のベクトルを処理する次のコードがあります。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 操作を実行しているため、この特定の関数を除いて、このエラーは発生しません。助けてください。