【问题标题】:How to fill a std::vector<int64_t> with text [closed]如何用文本填充 std::vector<int64_t> [关闭]
【发布时间】:2020-06-10 09:44:11
【问题描述】:

我有一个std::vector&lt;int64_t&gt; myVec,我想在其中存储一个字符串(文本)。我的理解是我不能保留空间并写信给myVec.data(),因为这将是未定义的行为。这样做的非黑客方式是什么?我假设最后一个 int64_t 必须用填充零填充。

我正在使用 C++14。

【问题讨论】:

  • 但是你可以resize这个向量然后memcpy变成data()
  • 您如何设想以整数形式存储文本?每个字符一个整数?每个整数 8 个字符? BCD 编码? ASCII 编码?

标签: c++ c++14 stdvector int64


【解决方案1】:

如果您被限制为矢量,唯一的解决方案是将resize() 调整为所需的大小,并将strcpy/memcpy 转换为data()

【讨论】:

  • std::copy().data()。不要使用back_inserter,因为这会在最初的大量空元素之后附加新元素。
【解决方案2】:

为什么要将文本存储在 int 中?

你打算存储由字符串组成的数字吗?

如果是这样,你应该:

std::vector<int64_t> myVec;
myVec.push_back(atoll("100"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-07
    • 1970-01-01
    • 2017-06-17
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多