【问题标题】:C++ std::vector arguments in brackets - explanation?括号中的 C++ std::vector 参数 - 解释?
【发布时间】:2017-11-03 19:41:37
【问题描述】:

我对 C++ 缺乏经验。我遇到了下面的代码

std::vector<char> is_prime(sqrt + 1, 1);

更新其中 sqrt 是一个正整数。

我相信它是定义一个充满字符的向量,将向量命名为is_prime,但我不明白这两个参数的目的是什么。

我查看了 std::vector 的文档,但这对我来说并不清楚。我也搜索过 SO,但没有发现任何问题有帮助。

示例:假设 sqrt 为 4,那么这将生效:

is_prime(5, 1);

这是否意味着它是一个包含元素 5 和 1 的向量?一个大小为 5 且第一个元素为 1 的向量?

【问题讨论】:

  • 您正在寻找的文档可以在std::vector::vector 找到。该构造函数是标记为(2) 的重载。
  • 这是一个 5 个字符为 1 的向量。很可能有人不喜欢向量 .
  • @tobi303 已更正谢谢

标签: c++ vector parameter-passing std


【解决方案1】:

第一个参数是“初始容器大小”,第二个参数是“填充容器的值。容器中的 n 个元素中的每一个都将被初始化为该值的副本。”

http://www.cplusplus.com/reference/vector/vector/vector/

【解决方案2】:

可能是vector构造函数的第二种形式 http://www.cplusplus.com/reference/vector/vector/vector/

vector (size_type n, const value_type& val = value_type(),
             const allocator_type& alloc = allocator_type());

这将用 sqrt + 1 个元素填充字符向量,所有元素都设置为 1 作为字符。

【讨论】:

  • @Francois 没有得到您的参考。这是一个链接,有人询问其他人不喜欢 cplusplus.com 的哪些方面。它已关闭为题外话。您是想说您不喜欢指向 cplusplus.com 的链接吗?如果是这样,那么建议一个更好的参考。
猜你喜欢
  • 2016-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-15
相关资源
最近更新 更多