Per farti un esempio concreto, questo esempio semplicissimo di codice ti mostra come usare una sola funzione che mostra un menu in base agli elementi presenti nel vector che puoi aggiungere/rimuovere come vuoi (nell'esempio sono aggiunti da codice ma puoi aggiungerli/rimuoverli da tastiera, file ...).
#include <iostream>
#include <string>
#include <vector>
using namespace std;
void menu(vector<string> &v)
{
for(unsigned int i=0; i<v.size(); i++)
cout << i+1 << ") " << v[i] << endl;
}
int main()
{
vector<string> elenco;
elenco.push_back("calcolatrice");
elenco.push_back("notepad");
elenco.push_back("word");
menu(elenco);
cout << endl << endl;
elenco.push_back("excel");
menu(elenco);
cout << endl << endl;
elenco.push_back("Visual C++");
elenco.push_back("notepad++");
menu(elenco);
cout << endl << endl;
elenco.erase(remove(elenco.begin(), elenco.end(), "word"), elenco.end());
menu(elenco);
return 0;
}