C++ 阵列复杂性

C++ 阵列复杂性,c++,stl,complexity-theory,C++,Stl,Complexity Theory,STL中valarray::min和valarray::max函数的时间复杂度是多少 此外,什么是查找各种其他STL组件的时间/空间复杂性的好来源?检查STL组件复杂性的好地方:O(N) 这些函数不缓存其结果 在任何stl参考中搜索标题为“复杂性”的部分,例如 或 时间复杂度规范是几乎所有方法和功能的STL规范的一部分 通常不指定内存复杂性 这些[低级]函数不缓存最小/最大结果有很好的理由: 如果要快速获取经常修改的容器的最小/最大元素,可以 (1) 自己计算/保持最小/最大值 (2) 使

STL中
valarray::min
valarray::max
函数的时间复杂度是多少


此外,什么是查找各种其他STL组件的时间/空间复杂性的好来源?

检查STL组件复杂性的好地方:

O(N)

这些函数不缓存其结果

在任何stl参考中搜索标题为“复杂性”的部分,例如


时间复杂度规范是几乎所有方法和功能的STL规范的一部分

通常不指定内存复杂性

这些[低级]函数不缓存最小/最大结果有很好的理由:
如果要快速获取经常修改的容器的最小/最大元素,可以
(1) 自己计算/保持最小/最大值

(2) 使用堆或树而不是向量

它们怎么可能不是
O(N)
?当第一次调用时,是的,它们将花费
O(N)
时间。但是,也许可以将其存储在字段中,以便将来的调用只获取存储的值,而不是再次检查存储的值?这是可能的(如果您一直跟踪数组中不断变化的值),但没有指定它。也就是说,您可以(尽管我对此表示怀疑)使用不同的实现,但是标准指定了O(n)。