Вы можете увеличить счетчик и break
цикл, когда будет достигнут желаемый счет.
Что-то вроде:
void func(const std::vector<int> & v, std::size_t n)
{
std::size_t count(0);
for(int e : v)
{
if(count < n)
{
std::cout << e << " "; // Do what you want with e.
++count;
}
else
break; // Exit the loop
}
}
Но Я бы не рекомендовал делает это. Циклы for на основе диапазона предназначены для перебора всего контейнера. Таким образом, приведенное выше решение является менее читаемым способом:
void func(const std::vector<int> & v, std::size_t n)
{
for(std::size_t i = 0; (i < v.size()) && (i < n); ++i)
{
std::cout << v[i] << " "; // Do what you want with v[i].
}
}
Или также:
void func(const std::vector<int> & v, std::size_t n)
{
std::size_t count(0);
for(std::vector<int>::const_iterator cit = v.cbegin(); (cit != v.cend()) && (count < n); ++cit, ++count)
{
std::cout << *cit << " "; // Do what you want with *cit
}
}