4.2.1 Hero's Inventory 2.0程序简介

2013-10-07 14:45:17 · 作者: · 浏览: 54

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。

  1. // Hero's Inventory 2.0  
  2. // Demonstrates vectors  
  3. #include <iostream> 
  4. #include <string> 
  5. #include <vector> 
  6. using namespace std;  
  7. int main()  
  8. {  
  9. vector<string> inventory;  
  10. inventory.push_back("sword");  
  11. inventory.push_back("armor");  
  12. inventory.push_back("shield");  
  13. cout << "You have " << inventory.size() << " items.\n";  
  14. cout << "\nYour items:\n";  
  15. for (unsigned int i = 0; i < inventory.size(); ++i)  
  16. {  
  17. cout << inventory[i] << endl;  
  18. }  
  19. cout << "\nYou trade your sword for a battle axe.";  
  20. inventory[0] = "battle axe";  
  21. cout << "\nYour items:\n";  
  22. for (unsigned int i = 0; i < inventory.size(); ++i)  
  23. {  
  24. cout << inventory[i] << endl;  
  25. }  
  26. cout << "\nThe item name '" << inventory[0] << "’ has ";  
  27. cout << inventory[0].size() << " letters in it.\n";  
  28. cout << "\nYour shield is destroyed in a fierce battle.";  
  29. inventory.pop_back();  
  30. cout << "\nYour items:\n";  
  31. for (unsigned int i = 0; i < inventory.size(); ++i)  
  32. {  
  33. cout << inventory[i] << endl;  
  34. }  
  35. cout << "\nYou were robbed of all of your possessions by a thief.";  
  36. inventory.clear();  
  37. if (inventory.empty())  
  38. {  
  39. cout << "\nYou have nothing.\n";  
  40. }  
  41. else  
  42. {  
  43. cout << "\nYou have at least one item.\n";  
  44. }  
  45. return 0;  
  46. }