我正在构建一个依赖于某些事件的双流系统,因此程序可以选择要使用的流(数据库或文件)。
我有在使用文件时模拟数据库的想法,并提出了以下建议:
一个std :: list将作为SqlRow,而映射将是相应的关联列和值。
为了说明:

typedef map<string, string> SqlColumn;
typedef list<SqlColumn> SqlRow;


并像这样定义它SqlRow *data = new SqlRow(0);
当我执行以下操作时出现错误:data[row].insert(make_pair("Key", "Value"));

error C2661: 'std::list<_Ty>::insert' : no overloaded function takes 1 arguments
1>        with
1>        [
1>            _Ty=SqlColumn
1>        ]


我的意思是,似乎编译器正在创建某种多维列表。原因是,如果我在其中放置其他尺寸,它将起作用。 (它实际上给了我另一个错误。但是它确实指向了我想要的地图。该错误与它无关。但是我将其发布。)

有人可以告诉我到底发生了什么吗?

附加信息:错误C2676:

binary '[' : 'SqlRow' does not define this operator or a conversion to a type acceptable to the predefined operator
error C2228: left of '.insert' must have class/struct/union

最佳答案

我不是C ++专家,但我认为您不能将data[row]作为对象指针来执行data

09-09 19:04