Question: I'm thinking about making a math program. It will ask a random question from a set of questions, and then verify the answer. Here is what I have so far:

```
String[] questions = {"3 * 19", "21 * 9", "7 * 4", "349274 * 0", "16 / 2", "3 + 86", "5 - 9"};
int[] answers =      {57,        189,       28,         0,           8,       89,      -4};

```

(It is not normally spaced like this; I did it just to show which answers went with what question)

Is there a more efficient way of doing this (I'm only interested in storing the data, **not** retrieving it)?

Answer: 
You can retrieve field names by doing 

```
field = mysql_fetch_field(resptr);
std::cout << field->name;

```

(Put in a while loop to loop through all field)

But you can't call `row[fieldName]`. What you can do though is define variables to map column names and numbers

```
int id = 0;
int trans_date = 1;
// Code happening here
std::cout << row[id] << " " << row[trans_date];

```

**UPDATE:** You could always do something like this (using STL's map):

```
map<string, int> columns;
int i = 0;
while(field = mysql_fetch_field(resptr)){
  columns.insert(pair<string,int>(field->name, i++));
}

```

And then use `row[columns["name"]];`.
[MySQL++](http://tangentsoft.net/mysql++) solves this problem. You can say things like:

```
string key = row["key"];

```

or by use of its [SSQLS feature](http://tangentsoft.net/mysql++/doc/html/userman/ssqls.html), this:

```
MyTableStructure foo = result[i];
cout << "The key is " << foo.key << endl;

```