为什么 C 向量称为向量?

新手上路,请多包涵

这个问题真的很不言自明。我对数学中的向量知之甚少,但我并没有真正看到与 C++ 向量的链接。

原文由 Skilldrick 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 513
2 个回答

向量的数学定义是集合的成员 S n ,它是特定集合中的有序值序列( S )。这就是 C++ vector 存储的内容。

原文由 mmx 发布,翻译遵循 CC BY-SA 2.5 许可协议

有很多好的 否定 答案,即 矢量 不是一个好名字。我想补充更多信息,为什么这么称呼它,以及如何在计算行业中使用词 _向量_。

矢量 字面意思是“载体”。然而,主要意义来自数学用法,意思是:

  1. 定向量(19 世纪早期)
  2. 有序的数字集(19 世纪后期)

第二种意义扩展到计算,我们有“记忆中的一系列连续位置”( _牛津英语词典_)。它与 array 具有相似的含义,我们有如下术语:

  • 矢量处理器
  • 矢量指令
  • 矢量化
  • 初始化向量
  • 中断向量

它们是既定的用法,因此 C++ 对 vector 的使用没有错。然而,正如 Stepanov 先生所说(在 从数学到通用编程 中,当他谈到命名原则时):

如果有相互冲突的用法,则更成熟的一方获胜。

他的遗憾是向量的这种用法与(更成熟的)数学用法相冲突,一开始最好避免使用它。

原文由 Yongwei Wu 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题