【问题标题】:Why is there no concatenation operator for C++ vectors? [duplicate]为什么 C++ 向量没有连接运算符? [复制]
【发布时间】:2020-01-18 06:02:25
【问题描述】:

为什么 + 没有被定义为 C++ 向量中的连接运算符?例如,字符串允许使用 +,python 列表也允许使用 +。不方便吗?

【问题讨论】:

  • 为什么要在c++中添加向量很方便,只因为可以添加python列表?
  • 您始终可以自己实现它:) 标准为您提供通用工具。
  • 在我的 C++ 职业生涯中,我已经编写了数百个(或数千个?)字符串连接。我相信我可以数数我手指上的std::vector 连接数。
  • 因为operator+ 对向量有两种含义:元素加法或连接。无论选择哪一个都是“错误的”,您始终可以自己实施您需要的那个。
  • @Angew:LSTM 目前在神经网络中相当流行。理论上,它们每步使用 12 个张量,但智能 C++ 实现将 12 个向量连接起来以作为局部参考。所以我现在有 11 个向量连接 ;)

标签: c++ vector concatenation


【解决方案1】:

因为,与字符串不同,向量不会自然地仅通过连接它们来进行 +'ed;在许多(大多数?)情况下,向量是通过按元素 +' 对其元素进行 +'ed。

【讨论】:

  • 你描述的是std::valarray。对于std::vector,请原谅我,这是相当牵强的说法
  • 如果你这么说。您可能需要在“this is a duplicate of”链接上检查接受的答案。
  • 严格来说,拒绝投票是针对人们认为“注释有用”的答案。当您将鼠标悬停在否决按钮上时,会在弹出窗口中显示相同的内容。由于各种原因,答案可能没有用,不仅仅是“不好”(这也是一个相当主观的术语)。
  • 我投了反对票,因为我觉得这个答案没有用。我还对副本上接受的答案投了反对票。因为那个也没用。 (我猜想 2011 年 Stack Overflow 的标准比现在低。)
  • 好的,谢谢您的信息。但是,我不确定为什么答案没有用 - 他们确实回答了为什么 + 运算符没有在向量的 STL 中实现的问题。
猜你喜欢
  • 2011-10-04
  • 2014-05-20
  • 1970-01-01
  • 2010-10-24
  • 2014-01-15
  • 2011-09-14
  • 2021-03-28
  • 2013-01-15
  • 2015-12-14
相关资源
最近更新 更多