如何在C ++ 17中将std :: string转换为std :: vector <std :: byte>?

费利佩

如何在C ++ 17中将a转换std::string为a std::vector<std::byte>编辑:由于要尽可能多地检索数据,我正在填充异步缓冲区。所以,我std::vector<std::byte>在缓冲区上使用,我想转换字符串以填充它。

std::string gpsValue;
gpsValue = "time[.........";
std::vector<std::byte> gpsValueArray(gpsValue.size() + 1);
std::copy(gpsValue.begin(), gpsValue.end(), gpsValueArray.begin());

但我收到此错误:

error: cannot convert ‘char’ to ‘std::byte’ in assignment
        *__result = *__first;
        ~~~~~~~~~~^~~~~~~~~~
Jdehesa

使用std::transform应该起作用:

#include <algorithm>
#include <cstddef>
#include <iostream>
#include <vector>

int main()
{
    std::string gpsValue;
    gpsValue = "time[.........";
    std::vector<std::byte> gpsValueArray(gpsValue.size() + 1);
    std::transform(gpsValue.begin(), gpsValue.end(), gpsValueArray.begin(),
                   [] (char c) { return std::byte(c); });
    for (std::byte b : gpsValueArray)
    {
        std::cout << int(b) << std::endl;
    }
    return 0;
}

输出:

116
105
109
101
91
46
46
46
46
46
46
46
46
46
0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将std :: vector <std :: reference_wrapper <T>>转换为std :: vector <T>

如何将std :: queue转换为std :: vector

如何将dlib中的矩阵转换为std :: vector

如何将std :: vector <vector>转换为void *

如何将std :: string转换为std :: vector <uint8_t>?

如何从std :: vector转换为args

如何将std :: array转换为std :: vector?

将文件读入std :: vector <std :: byte>

如何将std :: vector转换为Eigen中的矩阵?

std :: vector如何转换为std :: span?

将std :: vector <char>转换为std :: vector <T>转换c ++

如何将“ std :: vector <std :: string>”转换为“ const char * array”?

无法在C ++中将二进制文件读入std :: vector <std :: byte>

将std :: string索引转换为std :: vector中的整数

将std :: vector <std :: vector <std :: string >>转换为std :: vector <std :: vector <double >>

如何将xarray转换为std :: vector?

如何将std :: vector <std :: vector <double >>转换为Torch :: Tensor?

C ++将Raw std :: bytes复制到std :: vector <std :: byte>

如何将std :: vector <uint8_t>转换为std :: basic_string <std ::: byte>以用于pqxx

C ++:错误无法从std :: vector <int> *转换为std :: vector <std :: vector <int>>

从std :: vector <int>转换为char [] C ++

将 BYTE* 从 MODULEENTRY32 的 modBaseAddr 转换为 std::string

在现代 C++ 中将 std::array<std::array<T,N>> 转换为 std::vector<T>

如何将 std::vector<std::string> 转换为 C api 的 char*[]

std::vector 转换为 std::map

我的 C++ 尝试将 std::vector<std::string> 转换为 JSON 无法编译

如何在 C++ 中将 LPCTSTR 转换为 std::string

使用 std::views 将 std::vector<string> 转换为 C++20 中的 std::string

将 std::vector 转换为不带 \0 的 std::string