#include <iostream>
#include <string>
#include <vector>
using namespace std;
string& refToElement(vector<string>& inventory, int i);
int main()
{
vector<string> inventory;
inventory.push_back("sword");
inventory.push_back("armor");
inventory.push_back("shield");
cout << refToElement(inventory, 0) << endl;
//assigns one reference to another -- inexpensive assignment
string& rStr = refToElement(inventory, 1);
cout << rStr << endl;
//copies a string object -- expensive assignment
string str = refToElement(inventory, 2);
cout << str << endl;
//altering the string object through a returned reference
rStr = "Healing Potion";
cout << inventory[1] << endl;
return 0;
}
//returns a reference to a string
string& refToElement(vector<string>& vec, int i)
{
return vec[i];
}