Scusa ma non hai capito una mazza.

E poi che utilita` ha qui il 'return'?

codice:
vector<int> elabora(vector<int> &elem)
{
    /*
	* Lo ordina
	*/
	sort(elem.begin(), elem.end());
	/*
	* Lo itera e ciclando lo mostra
	*/
	vector<int>::iterator it = elem.begin();
	for(;it<elem.end();it++)
	{
		cout << *it <<endl;
	}
	return elem;
}
Tolto 'return' e il tipo restituito:

codice:
void elabora(vector<int> &elem)
{
    /*
	* Lo ordina
	*/
	sort(elem.begin(), elem.end());
	/*
	* Lo itera e ciclando lo mostra
	*/
	vector<int>::iterator it = elem.begin();
	for(;it<elem.end();it++)
	{
		cout << *it <<endl;
	}
}