Abhängig von der Ebene der Abstraktion Sie zur Verfügung stellen möchten, sollten Sie zwischen Olaf Ansatz oder etwas STL verwendet, um die große Ebene:
template <class Iter>
void function(Iter first, Iter last)
{
// for example, to get size:
std::size_t size = std::distance(first, last);
// for example, to iterate:
for (Iter it = first; it != last; ++it)
{
// *it to get the value, like:
std::cout << *it << std::endl;
}
}
Auf diese Weise Sie die Funktion nicht nur für Arrays verwenden können, aber für verschiedene STL-Typen: Vektoren, Listen, Warteschlangen, Stapel und so.
int tab[4] = {1,2,3,4};
function(tab, tab+4);
std::vector<int> vec;
// fill vector with something
function(vec.begin(), vec.end());
Wenn Sie ein Array zur Funktion übergeben, verfällt es als Zeiger auf das erste Element des Arrays. Also sind beide identisch. –
Aus diesen? 'void function (std :: string const & str) {...};' ist das Beste. – Johnsyweb
Empfohlener Messwert: http://stackoverflow.com/a/4810672/78845 – Johnsyweb