-1

ねえ、私はSTLコンテナベクトルを含む関数を持っています。

void displayInventory()
{
    vector<string> inventory;
    cout<< "You have " << inventory.size() << " items.\n";
    cout<< "\nYouritems:\n";
    for (int i= 0; i< inventory.size(); ++i)
    cout<< inventory[i] << endl;
}

そして、別のメソッドプレイゲームで実際のベクトルを使用したいと思います。

int playGame()
{
    inventory.push_back("sword"); //This is an error. Expression must have class.
}

ベクトル宣言をグローバル化することなく、誰かがこれを行うのを手伝ってもらえますか?

4

2 に答える 2

3

2つの関数を参照してベクトルを渡し、mainで宣言しますか?

int main()
{
  vector<string> inventory;
  playGame(inventory);
  displayInventory(inventory);
}

void displayInventory(vector<string> &inventory)
{
  inventory.push_back("string");
}

void playGame(vector<string> &inventory)
{
  inventory.push_back("A second string");
}
于 2012-10-05T12:59:47.437 に答える
2

関数パラメーターとして受け取ることができます。

int playGame(vector<string>& inventory)
{
    inventory.push_back("sword");
}
于 2012-10-05T12:57:34.160 に答える