-2

我想在函数内创建一个字符串向量并在堆上为其分配内存。为此,我正在使用

vector<string>* residuetable = new vector<string>();

当我尝试做

&residuetable.push_back(modulo((exponentiate("2", exponent02)), modulus));

即尝试使用push_back函数将几个函数调用的返回值添加到向量,我得到编译时错误

request for member 'push_back' in 'residuetable', which is of non-class type 'std::vector<std::string, std::allocator<std::string> >*

如何解决这个问题并将函数调用的结果添加到堆上分配的向量的末尾?

4

3 回答 3

4

用于->通过指针访问类成员:

residuetable->push_back(...);

然后再想一想你是否真的想到处乱搞new。我很确定你不会。

于 2013-11-25T13:31:15.487 回答
1

你要:residuetable->push_back("foo");

于 2013-11-25T13:30:14.747 回答
1

您使用&而不是*, 并且(*a).b与 相同a->b

residuetable->push_back("foo");

但通常我们不会动态分配容器,因为有更好的方法来管理您的数据。

于 2013-11-25T13:44:47.637 回答