0

我有以下多维向量

int main()
{
    vector< vector<string> > tempVec;

    someFunction(&tempVec);
}

void someFunction(vector< vector<string> > *temp)
{
    //this does not work
    temp[0]->push_back("hello");
}

当我有向量指针时,如何将数据推送到向量中?下面的代码不起作用。

    temp[0]->push_back("hello");
4

1 回答 1

1

你需要

(*temp)[0].push_back("hello")

那是:

  • 取消引用temp以获得vector<vector<string> > &
  • 获取第一个元素,avector<string> &
  • 使用.而不是->因为您不再处理指针

也就是说,如果someFunction使用 avector< vector<string> >&而不是指针会更容易:temp[0].push_back("hello")。引用不允许指针算术或空指针,因此它们更难搞砸,并且更暗示所需的实际输入类型(单个vector,而不是可选的或它们的数组)。

于 2012-11-08T16:41:14.763 回答