小编she*_*ing的帖子

将 `QByteArray` 转换为 `std::vector<char>` 的最佳方法?

我正在尝试以尽可能少的开销将数据从另一个移动QByteArray到另一个。std::vector<char>

目前我找到了4种方法,哪一种的性能最好呢?有更好的解决方案吗?您希望在代码审查中看到哪一个?

#include <QDebug>
#include <vector>

int main() {

    auto b = QByteArray("hello");
    std::vector<char> v;

    // 1
    v = std::vector<char>(*b.data(),b.size());

    // 2
    v = std::vector<char>(b.begin(),b.end());

    // 3
    std::move(b.begin(),b.end(),std::back_inserter(v));

    // 4
    v.resize(b.size());
    std::memcpy(&v[0],b,b.size());

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ qt c++17

1
推荐指数
1
解决办法
155
查看次数

标签 统计

c++ ×1

c++17 ×1

qt ×1