declare a struct with c++ vectors in a header file...

Discussion in 'C++' started by beet, Jun 16, 2008.

  1. beet

    beet Guest

    Hi all,

    I tried to declare a c++ struct like following in a header file; I
    want to include
    this header file in other files to create and access this struct.

    ------
    1 #ifndef _SEARCHDATA_H_
    2 #define _SEARCHDATA_H_
    3
    4 #include <vector>
    5 #include <list>
    6
    7 typedef struct searchIterInfo searchIter;
    8 struct searchIterInfo {
    9 searchIterInfo ():
    10 contPts(0), //continuous trial points
    11 contFvs(0), //fv for cont points
    12 contFerrors(0), //std errors for cont points
    13 gradients(0), //list of gradients
    14 intPts(0), //evaluated int points
    15 intFvs(0), //function values for int points
    16 intFerrors(0), //errors for int points
    17 intPtList(0), //the monotone list of points
    18 simList(0), //the simplex list
    19 seedVals(0), //the seed values
    20 hMtx(0) {}; //the estimated hesian matrix
    21
    22 vector< vector<double> > contPts;
    23 vector<double> contFvs;
    24 vector<double> contFerrors;
    25 vector< vector<double> > gradients;
    26 vector< vector<int> > intPts;
    27 vector<double> intFvs;
    28 vector<double> intFerrors;
    29 list<int> intPtList;
    30 list<int> simList;
    31 vector<double> seedVals;
    32 vector< vector<double> > hMtx;
    33 int iterID; //the sample path index
    34 double sampleSize; //the sample size for this sp
    35 };
    36 #endif
    -----------------

    I got compiler errors:

    g++ -Wall -g -c retroSearch.cpp
    In file included from retroSearch.cpp:3:
    searchData.h:22: error: ISO C++ forbids declaration of `vector' with
    no type
    searchData.h:22: error: expected `;' before '<' token
    searchData.h:23: error: ISO C++ forbids declaration of `vector' with
    no type
    searchData.h:23: error: expected `;' before '<' token
    searchData.h:24: error: ISO C++ forbids declaration of `vector' with
    no type
    searchData.h:24: error: expected `;' before '<' token
    searchData.h:25: error: ISO C++ forbids declaration of `vector' with
    no type
    searchData.h:25: error: expected `;' before '<' token
    searchData.h:26: error: ISO C++ forbids declaration of `vector' with
    no type
    searchData.h:26: error: expected `;' before '<' token
    searchData.h:27: error: ISO C++ forbids declaration of `vector' with
    no type
    searchData.h:27: error: expected `;' before '<' token
    searchData.h:28: error: ISO C++ forbids declaration of `vector' with
    no type
    searchData.h:28: error: expected `;' before '<' token
    searchData.h:29: error: ISO C++ forbids declaration of `list' with no
    type
    searchData.h:29: error: expected `;' before '<' token
    searchData.h:30: error: ISO C++ forbids declaration of `list' with no
    type
    searchData.h:30: error: expected `;' before '<' token
    searchData.h:31: error: ISO C++ forbids declaration of `vector' with
    no type
    searchData.h:31: error: expected `;' before '<' token
    searchData.h:32: error: ISO C++ forbids declaration of `vector' with
    no type
    searchData.h:32: error: expected `;' before '<' token
    searchData.h: In constructor `searchIterInfo::searchIterInfo()':
    searchData.h:10: error: class `searchIterInfo' does not have any field
    named `contPts'
    searchData.h:11: error: class `searchIterInfo' does not have any field
    named `contFvs'
    searchData.h:12: error: class `searchIterInfo' does not have any field
    named `contFerrors'
    searchData.h:13: error: class `searchIterInfo' does not have any field
    named `gradients'
    searchData.h:14: error: class `searchIterInfo' does not have any field
    named `intPts'
    searchData.h:15: error: class `searchIterInfo' does not have any field
    named `intFvs'
    searchData.h:16: error: class `searchIterInfo' does not have any field
    named `intFerrors'
    searchData.h:17: error: class `searchIterInfo' does not have any field
    named `intPtList'
    searchData.h:18: error: class `searchIterInfo' does not have any field
    named `simList'
    searchData.h:19: error: class `searchIterInfo' does not have any field
    named `seedVals'
    searchData.h:20: error: class `searchIterInfo' does not have any field
    named `hMtx'
    searchData.h: At global scope:
    searchData.h:36: error: expected constructor, destructor, or type
    conversion before '<' token
    searchData.h:37: error: `vector' was not declared in this scope
    searchData.h:37: error: expected primary-expression before "int"
    searchData.h:37: error: expected primary-expression before '&' token
    searchData.h:37: error: expected primary-expression before ',' token
    searchData.h:37: error: expected primary-expression before "double"
    searchData.h:37: error: expected primary-expression before "double"
    searchData.h:37: error: initializer expression list treated as
    compound expression
    searchData.h:38: error: variable or field `addPt' declared void
    searchData.h:38: error: `vector' was not declared in this scope
    searchData.h:38: error: expected primary-expression before "int"
    searchData.h:38: error: expected primary-expression before '&' token
    searchData.h:38: error: expected primary-expression before ',' token
    searchData.h:38: error: expected primary-expression before "double"
    searchData.h:38: error: expected primary-expression before "double"
    searchData.h:38: error: initializer expression list treated as
    compound express

    ****************

    I am a beginer of c++ programming, so anyone pls help me.
    Thanks a lot.

    Beet
     
    beet, Jun 16, 2008
    #1
    1. Advertising

  2. beet

    Guest

    On Jun 16, 2:01 pm, beet <> wrote:
    >      22     vector< vector<double> > contPts;

    You need to qualify the names with std::
     
    , Jun 16, 2008
    #2
    1. Advertising

  3. beet

    Jim Langston Guest

    "beet" <> wrote in message
    news:...
    > Hi all,
    >
    > I tried to declare a c++ struct like following in a header file; I
    > want to include
    > this header file in other files to create and access this struct.
    >
    > ------
    > 1 #ifndef _SEARCHDATA_H_
    > 2 #define _SEARCHDATA_H_
    > 3
    > 4 #include <vector>
    > 5 #include <list>
    > 6
    > 7 typedef struct searchIterInfo searchIter;
    > 8 struct searchIterInfo {
    > 9 searchIterInfo ():
    > 10 contPts(0), //continuous trial points
    > 11 contFvs(0), //fv for cont points
    > 12 contFerrors(0), //std errors for cont points
    > 13 gradients(0), //list of gradients
    > 14 intPts(0), //evaluated int points
    > 15 intFvs(0), //function values for int points
    > 16 intFerrors(0), //errors for int points
    > 17 intPtList(0), //the monotone list of points
    > 18 simList(0), //the simplex list
    > 19 seedVals(0), //the seed values
    > 20 hMtx(0) {}; //the estimated hesian matrix
    > 21
    > 22 vector< vector<double> > contPts;


    std::vector<std::vector<double>> contPts;

    > 23 vector<double> contFvs;


    std::vector<double> contFvs;

    > 24 vector<double> contFerrors;


    std::vector<double> contFerrors;
    etc...
    [SNIP]
     
    Jim Langston, Jun 17, 2008
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Philipp
    Replies:
    5
    Views:
    6,468
    Ron Natalie
    Oct 16, 2003
  2. Chris Fogelklou
    Replies:
    36
    Views:
    1,391
    Chris Fogelklou
    Apr 20, 2004
  3. Replies:
    3
    Views:
    701
    Shadowman
    Mar 26, 2008
  4. beet
    Replies:
    5
    Views:
    527
  5. Guest
    Replies:
    0
    Views:
    445
    Guest
    Sep 14, 2005
Loading...

Share This Page