我大力提倡尽可能使用C++标准库。现代库实现是快速和稳定今天,他们易于使用,有清晰的接口,具有统一的语义。情况并非总是如此,但过去几年来一直如此。在这里,我将查看C++中类似数组的集合,特别是 std::array 和 std:vector 类型。

这两种类型都以类似的方式与各种标准库算法集成。第一种是纯粹的静态的;第二种是静态的。然而,而第二个是动态的。今天,我们将特别看静态性能。

您可能还喜欢: Arrays.hashCode() Vs. 对象.哈希()

首先,让我们来看看整体可用性。坦率地说,由于 STL 对传统 C 类型具有大量支持,它们都工作得很好:

C++

15
用于(康斯特自动& istd_numbers

2
{
3
st::cout<<<std::endl;
4
}
5

6
康斯特汽车和ia_numbers
7
{
8
st::cout<<<std::endl;
9
自动最小值 = std:min_element(std_numbers开始(),std_numbers。结束();

12
st::cout<<"std最小值"<<<std::endl;
13

14
min=std:min_element(std:开始(a_numbers:结束(a_numbers));
15
std::cout<<"amin"<<=最小<<std::endl;

此处仅存在细微差异,尤其是在调用算法时(即 std::min_element(.))。std::array 类型具有对迭代器的集成支持;我们需要使用来自 STL 的适配器函数从数组生成迭代器

还有一个不是。

您可以使用括号表示法或通过 std:array:at(.) 方法访问 std::array 中的数据:

C++