大家好,有什么方法可以使用 vector 迭代器返回 vector 中的前5个元素吗?

在此示例中,我将仅获得 vector 本身中的所有值。

// vector::begin/end
#include <iostream>
#include <vector>

int main ()
{
  std::vector<int> myvector;
  for (int i=1; i<=10; i++) myvector.push_back(i);

  std::cout << "myvector contains:";
  for (std::vector<int>::iterator it = myvector.begin() ; it != myvector.end(); ++it)
    std::cout << ' ' << *it;
  std::cout << '\n';

  return 0;
}

嗯,感谢您的所有迅速答复。但是,当我尝试将它们放入函数中时,为什么会出现编译错误?
void Test::topfives()
{
    topfive.assign( point1.begin(), point1.end() );
    sort(topfive.begin(), topfive.end(), sortByCiv);
}

void Test::DisplayTopFiveResult()
{
    test.topfives();

    copy(topfive.begin(), topfive.begin()+ min(topfive.size(), (size_t )5),
    ostream_iterator<Level>(cout << level.displayClassresult()));
}

最佳答案

myvector.begin()前进5

std::copy(myvector.begin(),
          myvector.begin()+std::min(myvector.size(), (size_t)5),
          std::ostream_iterator<int>(std::cout,"\n"));

这从myvector最多打印前5个元素

参见Here

引用:- std::copy std::min std::ostream_iterator

09-06 13:23