4.2.1 Hero's Inventory 2.0程序简介
从用户的角度看,Hero's Inventory 2.0程序与它的前身、第3章中的Hero's Inventory程序很相似。新版程序存储和使用string对象集合来表示主人公的物品栏。然而,从程序员的角度出发,两个程序迥然不同。原因在于,新程序使用向量而不是数组来表示物品栏。该程序的结果如图4-1所示。
|
| 图4-1 这一次主人公的物品栏用向量表示 |
从Course Technology网站(www.courseptr.com/downloads)或本书合作网站(http://www. tupwk.com.cn/downpage)上可以下载该程序的代码。程序位于Chapter 4文件夹中,文件名为heros_inventory2.cpp。
- // Hero's Inventory 2.0
- // Demonstrates vectors
- #include <iostream>
- #include <string>
- #include <vector>
- using namespace std;
- int main()
- {
- vector<string> inventory;
- inventory.push_back("sword");
- inventory.push_back("armor");
- inventory.push_back("shield");
- cout << "You have " << inventory.size() << " items.\n";
- cout << "\nYour items:\n";
- for (unsigned int i = 0; i < inventory.size(); ++i)
- {
- cout << inventory[i] << endl;
- }
- cout << "\nYou trade your sword for a battle axe.";
- inventory[0] = "battle axe";
- cout << "\nYour items:\n";
- for (unsigned int i = 0; i < inventory.size(); ++i)
- {
- cout << inventory[i] << endl;
- }
- cout << "\nThe item name '" << inventory[0] << "’ has ";
- cout << inventory[0].size() << " letters in it.\n";
- cout << "\nYour shield is destroyed in a fierce battle.";
- inventory.pop_back();
- cout << "\nYour items:\n";
- for (unsigned int i = 0; i < inventory.size(); ++i)
- {
- cout << inventory[i] << endl;
- }
- cout << "\nYou were robbed of all of your possessions by a thief.";
- inventory.clear();
- if (inventory.empty())
- {
- cout << "\nYou have nothing.\n";
- }
- else
- {
- cout << "\nYou have at least one item.\n";
- }
- return 0;
- }