So in my game the player can use items from their inventory, which is a vector of tuple (
Code:
vector<tuple<Item, int>> mInventory{ 0 };
) and in my code I noticed an issue, If the player has a Weak Potion which gives 10 health and a Super Potion that gives 25 health, it seems to use both items because its in a range based for loop, but i cannot seem to figure out how to just get one element of the vector and access the tuple outside of an iterator or RBFL. here is the code for that function:

Code:
void Character::UseItem(){
    int choice{ 0 };
    int counter{ 1 };


    while (choice != -1)
    {
		if (mInventory.empty())
        {
            cout << "You do not have any items to use." << endl;
            choice = -1;
        }
        else
        {
			cout << "\n################################################################" << endl;
            cout << "                          INVENTORY                        " << endl;
            cout << "################################################################" << endl;


			cout << "What item do you want to use? Type -1 to quit\n" << endl;
			cout << GetName() << "'s current health is: " << mHealth << "\n" << endl;


            counter = 1;


            for (auto& i : mInventory)
            {
                cout << counter++ << ") " << get<0>(i) << " (" << get<1>(i) << ")" << " Effect: " << get<0>(i).GetEffect() << endl;
            }


            cin >> choice;


            counter = 1;


            if (!cin.fail())
            {
                for (auto& j : mInventory)
                {
				    //If amount of items owned is greater than 0, and health is not full
                    if (get<1>(j) > 0 && mHealth != MAX_HEALTH)
                    {
					    cout << counter++ << ") " << get<0>(j) << " (" << --get<1>(j) << ")" << endl;
                        Heal(get<0>(j).GetEffect());
                        cout << "\n" << GetName() << "'s health restored to " << GetHealth() << "\n" << endl;;
                    }
                    else if (mHealth == MAX_HEALTH)
                    {
                        cout << "\nYou are already at full health.\n" << endl;
                    }
                    else
                    {
                        cout << "\nYou do not have enough " << get<0>(j) << "'s" << " to use\n" << endl;
                    }
                }
            }
            else
            {
                cout << "Error, Invalid Input" << endl;
			    cin.clear();
                cin.ignore(numeric_limits<streamsize>::max(), '\n');
            }   
        }
    }
}