我有以下多维向量

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

最佳答案

你需要

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


那是:


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


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

关于c++ - 多维 vector 指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13293448/

10-11 23:14
查看更多