0

私は次の多次元ベクトルを持っています

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

1 に答える 1

1

あなたが必要

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

それは:

  • tempを取得する逆参照vector<vector<string> > &
  • 最初の要素を取得するvector<string> &
  • ポインターを処理しなくなったため、.代わりに使用します->

とはいえ、ポインターの代わりに a を使用しsomeFunctionた方が簡単です: 。参照はポインター演算または null ポインターを許可しないため、失敗するのが難しくなり、実際に必要な入力の種類 (オプションの 1 つまたはそれらの配列ではなく、単一の ) がより示唆されます。vector< vector<string> >&temp[0].push_back("hello")vector

于 2012-11-08T16:41:14.763 に答える