Ich habe das folgende Stück Code mit einem Vektor innerhalb eines Vektors. Ich bekomme einen sehr seltsamen Kompilierungsfehler während der Arbeit mit Eclipse.wierd Kompilierzeit Fehler: Methode push_back konnte nicht aufgelöst werden
Ich versuche, den Inhalt eines vorhandenen Eintrags im column_info-Vektor in einen neuen column_info-Vektor in einem neuen table_info-Vektor zu kopieren.
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
}
}
Verpasse ich etwas? Weil ich eine push_back-Operation in anderen Teilen desselben Codes (in verschiedenen Funktionen) ausführe und diesen Fehler nicht erhalte, außer in dieser speziellen Funktion. Bitte helfen Sie.
Sie sollten an Ihrem Einzug arbeiten, und im Allgemeinen den Code ein wenig mehr C++ und weniger C. Zum Beispiel die 'typedef's sind nicht erforderlich in C++ (im Allgemeinen), und wenn Sie in der globalen sind Namespace, '_table_info' und' _column_info' sind reservierte Bezeichner für die Implementierung (Compiler + Bibliothek). Die Verwendung von 'char' Arrays sollte wahrscheinlich durch' std :: string' ersetzt werden ... –