【问题标题】:How can I convert a std::vector<unsigned short> to std::vector<int>? [duplicate]如何将 std::vector<unsigned short> 转换为 std::vector<int>? [复制]
【发布时间】:2017-05-13 20:39:06
【问题描述】:

这个问题我已经找了好几次了,但似乎都没有一个很好的答案(如果我错过了,请标记为重复)。

我有一个返回 std::vector&lt;unsigned short&gt; 的方法,但我希望允许的数字比无符号短空可以容纳的数字多,所以我想在添加更大的数字之前将其转换为 std::vector&lt;int&gt;

所以我想在保持数据和顺序不变的同时转换它。包含[1, 2, 3]std::vector&lt;unsigned short&gt; 在转换为std::vector&lt;int&gt; 后应该包含[1, 2, 3]

【问题讨论】:

  • 为什么不使用范围构造函数?
  • @EdgarRokyan 是的,这就是我需要的。

标签: c++ vector


【解决方案1】:

只需从std::vector&lt;unsigned short&gt; 构造std::vector&lt;int&gt;

std::vector<unsigned short> org_vec;

// ...

std::vector<int> int_vec(std::begin(org_vec), std::end(org_vec));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-07
    • 1970-01-01
    • 2021-07-11
    • 2014-02-19
    • 2016-03-31
    • 2020-12-07
    相关资源
    最近更新 更多