- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一个 std::vector<int>
:
std::vector<int> v;
[v is initialized]
我想得到 v
的最大元素。有一个算法可以做到这一点:
int max_value = *std::max_element(v.begin(), v.end());
到目前为止,一切顺利。
现在,假设v
包含 10,000,000 个元素,其第 10 个元素等于 std::numeric_limits<int>::max()
。是std::max_element()
将(不必要地)检查 v
的最后 9,999,990 个元素,或者它会认识到不能有大于 std::numeric_limits<int>::max()
的元素,从而在第 10 个元素之后停止?
最佳答案
我不能代表所有的实现,但是 libc++ 的 max_element
的实现不这样做。
这个想法有几个问题:
numeric_limits
的专门化为序列元素的类型。 ( max_element
适用于任何可以订购的东西。)这可以通过一些模板元编程来解决。max_element
它需要一个比较谓词,而不仅仅是 operator <
。这种情况下的最大值是多少?关于c++ - std::max_element() 有多聪明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61699759/
我有以下内容 static const unsigned int chromosome = 6; double bestFitness[chromosomes]; for(int i = 0; i
int N = 6; vector > A(N, vector(3)); /* Do operation with A */ cout<<(*max_element(a.begin(),a.end()
假设我有一个 std::vector : std::vector v; [v is initialized] 我想得到 v 的最大元素。有一个算法可以做到这一点: int max_value = *s
我注意到 std::max_element 在整数上有一个奇怪的行为,它们相差不超过一个: #include #include #include int main() { std::ve
我有一个二维矩阵 double TotalEnergy[200][47]; 此矩阵填充有适当的值。现在我试图在每一列中找到最大值。 在这种情况下如何使用 std::max_element? 非常感谢。
STL 提供 std::max_element 来查找可迭代对象中的最大元素,例如像这样: std::vector::const_iterator max = std::max_element(o
我一直在看推力,我偶然发现了一个几乎(但不完全)回答我的问题:Finding the maximum element value AND its position using CUDA Thrust
我需要找到存储在我设备上的长数组中的最大元素。我想我可以使用 thrust::max_element 来做到这一点。我在下面代码的 while 循环中调用 thrust::max_element。我只
int array[] = {2, 3, 4, 6}; int array[6] = {2, 3, 4, 6}; int array[MAX_SIZE] = {2, 3, 4, 6}; 在第一个语句中
#include #include int main() { int a[3]={5,3,4}; std::cout并写 #include //... std::cout << *s
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我给这个代码片段输入 1 2 3 4 5 并不断得到 O 作为输出。我想要 5(最大元素)作为所需的输出。 int main() { int inp; std::vector A; for (int
所以根据这里的链接:http://www.cplusplus.com/reference/algorithm/max_element/ ,max_element 函数是 O(n),显然对于所有 STL
同样是O(n)复杂度,但是经过不严谨 测试,使用库函数的速度远超for循环的遍历找最值 ?
我正在了解 std::max_element .我写了下面的代码: auto e = std::max_element( std::begin(rtspUrls
有没有办法通过比较每 N 个元素来找到容器中的最大元素并返回索引。使用 STL、BOOST 或...其他库? 对于每个 N,我的意思是使用 std::max_element,但将 for 的增量从++
我有一个指向对象 QActionDonald 的指针 vector ,我试图找到包含最高 expectedvalue_ 的对象。我已经重载了 operator *actionList = qValu
我怎样才能得到堆栈的最大元素? STL 堆栈没有任何 begin() 或 end() 方法,我可以通过以下方法获得最大值: auto max = max_element(c.begin(), c.en
我正在尝试为 map 编写一个自定义 cmp 函数,这是一个对 map 的第二个元素进行比较的简单函数。我想将该函数用作模板,但我不知道如何将 map 的 .first 和 .second 类型传递给
如果没有元素大于某个值,有什么方法可以使 std::max_element 返回 end 迭代器? 假设我有这个 vector : std::vector vector{3, 6, 2, 5}; au
我是一名优秀的程序员,十分优秀!