c++ - Using a global vector of structs -


i trying globally declare – , initialize – vector of structs. code following:

struct creation (in header file vsystem.h)     struct var {         string name;         float value;     };  variable (in source file vsystem.cpp)     #include <string>     #include <vector>      vector <var> varlist; 

both of # include <string> , <vector>. have tried

vector <var> varlist (); 

but doesn't work either. error is

expected constructor, destructor, or type conversion before '<' token 

on side note, setvar function triggering error:

multiple markers @ line     - 'string' not declared in scope     - expected primary-expression before 'float'     - initializer expression list treated compound       expression     - expected ',' or ';' before '{' token 

code:

int setvar(string varname, float value){     // check see if varname exists     varexists = false;     (int i=0; i<varlist.size(); i++){         if (varlist[i].name == varname){             varexists = true;             return err_var_exists;         }     }      // good! variable doesn't exist yet.     var tempvar ();     var.name = varname;     var.value = value;     varlist.push_back(tempvar);     return 0; } 

help please!

i running eclipse helios service release 2 g++ compiler on mac 10.6.7.

vector in std namespace. need qualify std::vector in declaration:

std::vector <var> varlist; 

(alternatively use using declaration, using std::vector;, if hate std::.)

similarly string; needs qualified std::string. of names in c++ standard library in std namespace except (a) macros , (b) in legacy c headers (the ones end in .h)


Comments