我有以下多维向量
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/