我有以下多维 vector
int main()
{
vector< vector<string> > tempVec;
someFunction(&tempVec);
}
void someFunction(vector< vector<string> > *temp)
{
//this does not work
temp[0]->push_back("hello");
}
当我有一个 vector 指针时,如何将数据推送到 vector 中? 下面的代码不起作用。
temp[0]->push_back("hello");
最佳答案
你需要
(*temp)[0].push_back("hello")
那是:
- 取消引用
temp
得到vector<vector<string> > &
- 获取第一个元素,a
vector<string> &
- 使用
.
而不是->
因为你不再处理指针
也就是说,如果 someFunction
会更容易拿了vector< vector<string> >&
而不是指针:temp[0].push_back("hello")
.引用不允许指针运算或空指针,因此它们更难搞砸,并且更能暗示所需的实际输入类型(单个 vector
,而不是可选的或它们的数组)。
关于c++ - 多维 vector 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13293448/