c++ - vector 和使用STL

标签 c++ vector stl

我是 C++ 和 vector 的新手,一直在尝试试验一些 STL 函数,但我想知道为什么这不起作用。我猜是因为我的第一个和最后一个职位,他们不允许是整数吗?

#include <cstdlib>
#include <vector>
#include <iostream>

using namespace std;

/*
 * 
 */
int main() {

    const int lowest = 10;
    const int highest = 99;

    vector<int> scramble;
    for (int i = 0; i < 20; i++){
        scramble.push_back(lowest + rand() % (highest - lowest + 1));
        cout << scramble.at(i) << endl;
    }
    int first = 0;
    int last = 19;

   cout << "The maximum value is: " << max_element(first, last);


}

最佳答案

根据max_element 文档:std::max_element

std::max_element  
template <class ForwardIterator>
ForwardIterator max_element (ForwardIterator first, ForwardIterator last);

template <class ForwardIterator, class Compare>
ForwardIterator max_element (ForwardIterator first, ForwardIterator last,
                          Compare comp);

前两个参数必须是FowardIterator,而不是简单的整数。

您可以尝试以下方法:

 std::cout << "The maximum value is: " 
  << *max_element(scramble.begin(), scramble.end());

关于c++ - vector 和使用STL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16430483/

相关文章:

C++ 如何从字符串流中取出值并将它们放入 vector 中,以便我可以单独访问它们?

c++ - 使用带有可变参数的 vector::insert

c++ - 在编译时确定类型是否为 STL 容器

c++ - 返回 'any kind of input iterator' 而不是 vector::iterator 或 list::iterator

c++ - 将数据从 fstream 复制到没有缓冲区的 stringstream?

c++ - 为什么没有调用 unexpected 函数?

c++ - 做 while(false) 模式

c++ - 在 C++ 文件中写入 n 字节的最快方法

c++ - 如何在函数中释放内存

r - 如何在R中对具有相同名称的向量元素求和?