gpt4 book ai didi

computer-science - 什么是向量以及它们在编程中如何使用?

转载 作者:行者123 更新时间:2023-12-03 07:31:04 25 4
gpt4 key购买 nike

我熟悉矢量作为大小和方向的数学/物理概念,但我也不断在编程上下文中遇到对矢量的引用(例如,C++ 似乎有一个 STL::vector 库这在 SO 上经常出现)。

我从上下文中得到的直觉是,它们是一个相当原始的构造,最常用于表示沿可变长度数组的某些内容(我认为将其大小存储为幅度),但这确实很有帮助如果有人可以为我提供更完整的解释,最好包括如何以及为何在实践中使用它们。

最佳答案

来自http://www.cplusplus.com/reference/stl/vector/

Vector containers are implemented as dynamic arrays; Just as regular arrays, vector containers have their elements stored in contiguous storage locations, which means that their elements can be accessed not only using iterators but also using offsets on regular pointers to elements.

But unlike regular arrays, storage in vectors is handled automatically, allowing it to be expanded and contracted as needed.

此外,向量通常可以保存任何对象 - 因此您可以创建一个类来保存有关车辆的信息,然后将车队存储在向量中。

除了调整大小之外,向量的好处在于它们仍然允许在恒定时间内通过索引访问各个元素,就像数组一样。

调整大小的权衡是,当您达到当前容量时,它必须重新分配(有时复制到)更多内存。然而,大多数容量增加算法每次遇到障碍时都会将容量增加一倍,因此您遇到的容量永远不会超过 log2(可用堆),在整个程序运行的最坏情况下,这可能是十几倍。

-亚当

关于computer-science - 什么是向量以及它们在编程中如何使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/508374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com