C++でのMysql苦悩

c++Mysqlにアクセスしているわけですが、データをとりに行く部分。(以下コードのprintfの部分)の結果をどんな形で返したらいいのかが謎過ぎてここ数日最強に困っています・・・

MYSQL_ROW row;
mysql_query(mysqld,SQL文);
MYSQL_RES *res = mysql_store_result(mysqld);
int num_fields = mysql_num_fields(res);

MYSQL_FIELD *fields;
fields = mysql_fetch_fields(res);
while (row = mysql_fetch_row(res)) {
    for (int i = 0; i < num_fields; ++i) {
	printf("SQLload >>> %s : %s\n",fields[i].name,row[i]);
    }
}

mysql_free_result(res);

2次元配列的な結果になるのですが、フィールドネームをキーとして呼び出したいので結果として3次元配列的になる。
呼び出しは
dat[i]["id"] とかしたいわけですが、これをC++でどうこうしようと思うと
list< map > となり呼び出しもイテレータをまわしながらキーを呼ぶという、呼び出しにくいことこの上ない型になる。。。


で、いろんなサイトをみて回ってるんですが、どこにいっても上記コードのようなprintfのところまでしか書いてない。謎過ぎる・・・もはや陰謀だ・・・
どうしたものか・・・・