0

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

1 回答 1

1

data[row]我不是 C++ 专家,但我认为你不能data成为对象指针。

于 2013-01-15T22:46:47.067 回答