我正在构建一个依赖于某些事件的双流系统,因此程序可以选择要使用的流(数据库或文件)。我有在使用文件时模拟数据库的想法,并想出了这个: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