多维向量指针

时间:2012-11-08 16:37:22

标签: c++ vector multidimensional-array

我有以下多维向量

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");

1 个答案:

答案 0 :(得分:1)

你需要

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

这是:

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

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