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

B

beet

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
 
J

Jim Langston

beet said:
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 said:
23 vector<double> contFvs;

std::vector said:
24 vector<double> contFerrors;

std::vector<double> contFerrors;
etc...
[SNIP]
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,904
Latest member
HealthyVisionsCBDPrice

Latest Threads

Top