我有以下多维向量
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");
答案 0 :(得分:1)
你需要
(*temp)[0].push_back("hello")
这是:
temp
以获得vector<vector<string> > &
vector<string> &
.
代替->
,因为您不再处理指针也就是说,如果someFunction
使用vector< vector<string> >&
代替指针temp[0].push_back("hello")
,会更容易。引用不允许指针算术或空指针,因此它们使得更难搞砸并且更多地暗示所需的实际输入类型(单个vector
,而不是可选的一个或它们的数组)。 / p>